研究了低级计算机视觉任务(例如去噪、超分辨率和去雨)并开发了一种新的预训练模型,即图像处理变压器(IPT)。利用著名的 ImageNet 基准来生成大量损坏的图像对。 IPT 模型是在这些具有多头和多尾的图像上进行训练的。此外,引入对比学习以更好地适应不同的图像处理任务。因此,预训练模型在微调后可以有效地应用于所需的任务。
1. 介绍
图像处理是更全局的图像分析或计算机视觉系统的低级部分的组成部分之一。图像处理的结果很大程度上影响后续高层部分对图像数据的识别和理解。近年来,深度学习已广泛应用于解决低级视觉任务,例如图像超分辨率、修复、去雨和着色。由于许多图像处理任务都是相关的,因此很自然地期望在一个数据集上预训练的模型可以对另一个数据集有所帮助。
在计算机视觉中,deraining是指图像去雨的过程。具体来说,deraining技术旨在从被雨水影响的图像中恢复出清晰、无雨的图像内容。deraining是一个具有挑战性的任务,因为雨水在图像中可能表现为不同的形态和密度,且对图像的影响也是复杂多变的。
预训练可能为图像处理任务提供有吸引力的解决方案:
首先,对于特定任务的数据可能受到限制。这个问题在涉及付费数据或数据隐私的图像处理任务中更加严重,例如医学图像和卫星图像。各种不一致的因素(例如相机参数、照明和天气)可能会进一步扰乱捕获的训练数据的分布。
其次,在呈现测试图像之前,不知道将请求哪种类型的图像处理作业。因此我们手头必须准备一系列的图像处理模块。他们有不同的目标,但一些基本操作可以共享。
本文中,我们使用Transformer架构开发了一种用于图像处理的预训练模型,即图像处理Transformer(IPT)。由于预训练的模型需要兼容不同的图像处理任务,包括超分辨率、去噪、去雨等,因此整个网络由对应不同任务的多对头尾和单个共享主体组成。
由于Transformer的潜力需要使用大规模数据集来挖掘,因此我们应该准备大量具有相当多样性的图像来训练IPT模型。为此,我们选择包含各种高分辨率、1000 个类别的 ImageNet 基准测试。对于 ImageNet 中的每个图像,我们使用操作来生成多个对应图像来服务于不同的任务。
Transformer架构在巨大的数据集上进行训练
1、训练图像被输入到特定的头部,生成的特征被裁剪为补丁,并随后展平为序列。
2、Transformer主体被用来处理扁平化特征,其中位置嵌入和任务嵌入分别用于编码器和解码器。
3、尾部被迫根据特定任务预测具有不同输出大小的原始图像。此外,引入了不同输入的块之间关系的对比损失,以便更好地使用不同的图像处理任务。
2. 相关工作
2.1 图像处理
图像处理包括对图像的操作,包括超分辨率、去噪、去雾、去雨、去模糊等。
2.2 Transformer
Transformer及其变体已证明其在各种自然语言处理任务中是强大的无监督或自监督预训练框架的成功。
探索 Transformer 在计算机视觉任务中的好处:
1、在传统的卷积神经网络中引入自注意力。引入了图像分割的空间注意力、提出DANET通过结合空间和通道注意力来利用上下文信息、通过自注意力增强特征,以增强模型在几个高级视觉任务上的性能
2、用自注意力块代替卷积神经网络。
3. Image Processing Transformer
3.1 IPT架构
IPT 的整体架构由四个部分组成:头部用于从输入的损坏图像(例如,带有噪声的图像和低分辨率图像)中提取特征,编码器-解码器Transformer用于恢复输入数据中缺失的信息,尾部用于将特征映射到恢复的图像中。
头部
为了适应不同的图像处理任务,我们使用多头架构来单独处理每个任务,其中每个头由三个卷积层组成。将输入图像表示为,头部生成具有C个通道的相同高度和宽度的特征图,计算公式为:,表示第 i 个任务的头部,表示任务的数量。
Transformer编码器
在将特征输入到Transformer主体之前,我们将给定的特征分割成补丁,每个补丁被视为一个“单词”。具体来说,特征图被重塑为补丁序列,,其中是补丁的数量(序列长度),P是补丁的大小。
为了维护每个补丁的位置信息,我们为之后的每个特征 补丁添加可学习的位置编码,并且将直接输入到Transformer编码器中。编码器层具有多头自注意力模块和前馈网络。每个补丁的编码器的输出具有与输入补丁 相同的大小。
其中 表示编码器中的层数,MSA表示传统变压器模型中的多头自注意力模块,LN表示层归一化,FFN表示前馈网络,其中包含两个完全连接层。
Transformer解码器
解码器也遵循相同的架构,并将解码器的输出作为变压器主体的输入,Transformer主体由两个多头自注意力(MSA)层和一个前馈网络(FFN)组成。
可以利用特定于任务的嵌入作为解码器的附加输入。这些特定于任务的嵌入被学习来解码不同任务的特征。解码器的计算可以表述为:
其中表示解码器的输出。然后,将解码后的 N 个大小为 的补丁特征重新整形为大小为 C × H × W 的特征 。
尾部
尾部的属性与头部相同,我们使用多尾来处理不同的任务。计算可以表述为,表示第 i 个任务的头部,表示任务的数量。输出的结果图像大小为由具体任务决定。对于2× 超分辨率任务,H′ = 2H,W = 2W。
3.2 ImageNet上的预训练
成功训练出优秀Transformer的关键因素之一是大规模数据集的充分利用。与图像分类相比,用于图像处理任务的可用数据数量相对较少。建议利用众所周知的ImageNet作为基线数据集预训练 IPT 模型,然后我们为多个任务(例如超分辨率和去噪)生成整个数据集。
由于 ImageNet 基准测试中的图像具有很高的多样性,其中包含来自 1,000 个不同类别的超过 100 万张自然图像。这些图像具有丰富的纹理和颜色信息。
首先删除语义标签,并使用针对不同任务的各种退化模型,从这些未标记的图像中手动合成各种损坏的图像。例如,超分辨率任务通常采用双三次退化(bicubic)来生成低分辨率图像,去噪任务在不同噪声级别的干净图像中添加高斯噪声以生成噪声图像。这些合成图像可以显着提高学习深度网络(包括 CNN 和 Transformer 架构)的性能。
损坏的图像合成为:,其中表示退化变换,对于超分辨率任务,正是双三次插值;对于图像去噪,,其中 是加性高斯噪声;对于除雨, 其中 是手工制作的雨条纹。以监督方式学习 IPT 的损失函数可以表示为:
。
其中 表示重建所需图像的传统 L1 损失, 分别表示任务 i 的损坏图像。所提出的框架同时接受多个图像处理任务的训练。具体来说,对于每个批次,我们从 个监督任务中随机选择一个任务进行训练,每个任务将同时使用相应的头、尾和任务嵌入进行处理。
在预训练 IPT 模型后,它将捕获各种图像处理任务的内在特征和转换,因此可以进一步微调以使用新提供的数据集应用于所需的任务。此外,为了节省计算成本,其他头部和尾部将被丢弃,并且剩余头部、尾部和主体中的参数将根据反向传播进行更新。
然而,由于退化模型多种多样,我们无法为所有图像处理任务合成图像。实践中可能存在多种可能的噪声水平。因此,应进一步增强所得IPT的泛化能力。与预训练自然语言处理模型类似,图像块之间的关系也提供了信息。我们引入对比学习来学习通用特征,以便预先训练的IPT模型可以用于未见过的任务。将 IPT 解码器针对给定输入生成的输出补丁特征表示为其中是从一批训练图像。我们的目标是最小化来自相同图像的补丁特征之间的距离,同时最大化来自不同图像的补丁特征之间的距离。
,其中表示余弦相似度。为了充分利用监督和自监督信息,我们将损失函数重新表述为:
其中,我们将λ平衡对比损失与监督损失相结合作为IPT的最终目标函数。
4. 实验
预训练的 IPT 模型可以在这些任务上实现最先进的性能。此外,大量的消融研究实验表明,在使用大规模数据集解决图像处理问题时,基于 Transformer 的模型比卷积神经网络表现更好。
超分辨率图像处理(Image Super-resolution)是一种重要的图像处理技术,旨在通过算法和模型将低分辨率(Low Resolution, LR)图像提升到高分辨率(High Resolution, HR),从而增强图像的细节和清晰度。
数据集
使用著名的 ImageNet 数据集,该数据集由超过 1M 个高度多样性的彩色图像组成。训练图像被裁剪成 48 × 48 的 patch,具有 3 个通道进行训练,即有超过 10M 个 patch 用于训练 IPT 模型。然后,我们生成具有 6 种退化类型的损坏图像:分别是 2×、3×、4× 双三次插值、30、50 噪声级别高斯噪声和添加雨纹。
超分辨率
由于高缩放因子导致大量信息丢失,因此很难恢复原始高分辨率图像。以前的方法生成模糊图像,而我们的模型生成的超分辨率图像可以很好地从低分辨率图像中恢复细节。