本文是一个基于transformer的预训练通用模型,针对低级视觉任务还没有人提出预训练的模型,所以作者使用了超大数据集训练出了image processing transformer (IPT)。可以微调后应用于图像重建、去噪、去雨等等。具体结构作者使用了一个多头多尾共享躯干的结构。应对不同的任务,有针对性不同的头部和尾部,分别使用不同的处理方式。中间是一个transformer编解码器结构。将头部输出的特征图像unfold成”词向量“形式和位置嵌入相加后输入encoder,encoder是常规的结构,包括一个LN和MSA接残差、LN和FFN接残差(FNN有两层全连接)。解码器结构和常规transformer也差不多,但是多了一个特定任务标签嵌入,加入在decoder输入第一次MSA的Q和K上、第二次Q的上。尾部也是多个针对特定任务的结构,用于还原图像尺寸。

数据集是使用ImageNet自己处理的,因为需要大量数据才能训练出较好的预训练模型。

LOSS使用有监督的L1L损失和对比学习损失函数。

原文链接:IPT:Pre-Trained Image Processing Transformer
源码地址:
https://github.com/huawei-noah/Pretrained-IPT
and
https://gitee.com/mindspore/mindspore/tree/master/model_zoo/research/cv/IPT

IPT:Pre-Trained Image Processing Transformer[CVPR 2021]

  • Abstract
  • 1 Introduction
  • 2 Method
    • 2.1 IPT architecture
    • 2.2 Pre-training on ImageNet
  • 3 Experiments
    • 3.1 Super-resolution
    • 3.2 Denoising
    • 3.3 Deraining
    • 3.4 Generalization Ability
    • 3.5 Ablation Study
  • 4 Conclusion

Abstract

随着现代硬件计算能力的强劲增长,在大规模数据集上学习的预训练的深度学习模型(如BERT、GPT-3)已显示出其比传统方法更有效。这一巨大进步主要归功于transformer及其变体架构的表示能力。

在本文中,作者试图在低级计算机视觉任务(例如去噪、超分辨率和去雨),也开发一个预训练模型,即图像处理Transformer——image processing transformer (IPT)。为了最大限度地挖掘transformer的性能,作者使用了著名的ImageNet基准生成大量损坏的图像对。IPT模型在这些图像上进行多头多尾训练。此外,为了更好地适应不同的图像处理任务,还引入了对比学习。因此,经过微调后,预训练的模型可以有效地用于所需的任务。虽然只有一个预训练的模型,IPT在各种低水平基准上的表现优于当前最先进的方法。

1 Introduction

图像处理是计算机视觉系统的低级部分的一个组成部分。图像处理的结果会在很大程度上影响后续高级部分对图像数据进行识别和理解。由于许多图像处理任务都是相关的,因此很自然地,人们会期望在一个数据集上预训练的模型可以对另一个数据集有所帮助。但很少有研究将预训练推广到图像处理任务中。

现在,在自然语言处理和计算机视觉方面进行预训练很常见。

  1. 目标检测模型的主干通常是在ImageNet分类上预训练的,包括AlexNet、VGGNet和ResNet。
  2. 开创性的Transformer也已广泛应用于许多自然语言处理(NLP)任务,如翻译和问答。基本都是大型文本语料库上预训练基于transformer的模型,并在特定于任务的数据集上对其进行微调。
  3. Transformer的变体,如Bert和GPT-3,进一步丰富了训练数据,提高了预训练的能力。

已经有学者尝试将Transformer推广到计算机视觉领域。例如,Wang等人和Fu等人应用了基于自注意的模型来捕捉图像上的全局信息;Carion等人提出DERT使用transformer架构进行端到端目标检测;Dosovitskiy等人引入了视觉Transformer(ViT),将输入图像处理为16×16的token,并在图像识别方面取得了优异的效果。

图像处理任务的预训练方法需要解决两个问题:

  1. 任务特定的数据受到限制。这一问题在涉及付费数据或数据隐私的图像处理任务中更加严重,如医学图像和卫星图像。各种不一致因素(例如摄像机参数、照明和天气)可能会进一步干扰用于训练的数据分布。
  2. 在应用测试前,并不知道将用于哪种类型的图像处理任务。因此,必须准备一系列的图像处理模块。各个模块有明确的任务目标,但一些潜在的部分可以共享数据。

在本文中,作者使用transformer架构开发了一个预训练的图像处理模型,即图像处理transformer(IPT)。由于预训练模型需要与不同的图像处理任务兼容,包括超分辨率、去噪和去雨,整个网络由多对对应于不同任务的头部和尾部以及单个共享体组成。

由于需要使用大规模数据集挖掘Transformer的潜力,用大量、多样性的图像来训练IPT模型。为此,选择了ImageNet基准,它包含1000个类别的各种高分辨率图像。对于ImageNet中的每个图像,使用几种精心设计的操作来为不同的任务生成多个损坏的副本。例如,超分辨率任务的训练样本是通过对原始图像进行下采样生成的。用于IPT训练的整个数据集包含约1000多万张图像 。然后在庞大的数据集上训练transformer架构。

训练图像被输入到特定的头部,生成的特征被裁剪成小块(即“token”),然后展平成序列。Transformer处理展开的特征,编码器和解码器分别使用位置和任务嵌入。此外,根据特定任务,尾部被强制预测具有不同输出大小的原始图像。此外,为了更好地适应不同的图像处理任务,还引入了不同输入块之间关系的对比损失。提出的图像处理Transformer是以端到端的方式学习的。在多个基准上进行的实验结果表明,经过预训练的IPT模型可以在微调后显著增强,从而超过大多数现有方法。

2 Method

2.1 IPT architecture

IPT的总体架构由四个部分组成:头部用于从输入损坏图像中提取特征,编码器解码器(用于恢复输入数据中缺失信息)以及用于将特征映射为恢复图像的尾部

Heads:
为了应对不同的图像处理任务,使用了一种多头部结构来分别处理每个任务,其中每个头部由三个卷积层组成。
输入图像表示为x∈R3×H×Wx∈ R^{3×H×W}x∈R3×H×W,头部生成特征图fH∈RC×H×Wf_H∈ R^{C×H×W}fH​∈RC×H×W,(通常使用C=64)。计算公式为
fH=Hi(x)f_H=H^i(x)fH​=Hi(x)其中Hi(i=1,…,Nt)H^i(i={1,…,N_t})Hi(i=1,…,Nt​)表示第i个任务的头部,NtN_tNt​表示任务数。

Transformer encoder:

  1. 先将特征分割为patch,每个patch展开为一列向量,视为一个“词向量”。输入特征fH∈RC×H×Wf_H∈ R^{C×H×W}fH​∈RC×H×W reshape 成一序列patch fpi∈RP2×C,i=1,…,Nf_{pi}∈ R^{P^2×C},i={1,…,N}fpi​∈RP2×C,i=1,…,N,patch数量为N=HWp2N=\frac{HW}{p^2}N=p2HW​(序列长度),p是patch大小。
  2. 再加入位置信息,每个patch都添加了可学习的位置编码Epi∈RP2×CE_{pi}∈ R^{P^2×C}Epi​∈RP2×C。Epi+fpiE_{pi}+f_{pi}Epi​+fpi​将直接输入Transformer编码器。
  3. Transformer encoder继承最原始结构,有一个多头自注意模块和一个前馈网络。经过encoder注意力计算不改变输入输出尺寸。encoder内部公式如下:


lll表示编码器中的层数,MSA表示传统Transformer模型中的多头自注意模块,LN表示层规范化,FFN表示前馈网络,其中包含两个全连接层。

Transformer decoder:
Decoder也和原始的decoder无甚差别只是多加了一个任务类型嵌入。Transformer edcoder由两个多头自注意(MSA)层和一个前馈网络(FFN)组成。使用特定于任务的嵌入作为decoder的额外输入。这些特定于任务的嵌入Eti∈RP2×C,i=1,…,NtE_t^i∈ R^{P^2×C},i={1,…,N_t}Eti​∈RP2×C,i=1,…,Nt​为学习不同任务解码特征。最后将解码得到的大小为p2×Cp^2×Cp2×C的N个特征重塑为大小为C×H×WC×H×WC×H×W的特征fDf_DfD​。解码器的计算公式如下:

Tails:
尾部的性质与头部相同,使用多个尾部来处理不同的任务。计算公式为fT=Ti(fD)f_T=T^i(f_D)fT​=Ti(fD​),其中Ti(i=1,…,Nt)T_i(i={1,…,N_t})Ti​(i=1,…,Nt​)表示第iii个任务的头部,NtN_tNt​表示任务数。输出fTf_TfT​是由特定任务确定的图像大小为3×H′×W′3×H′×W′3×H′×W′的结果。例如,对于2×超分辨率任务,H′=2H,W′=2W。

2.2 Pre-training on ImageNet

决定一个模型成功与否,除了本身的网络结构,还有一个关键因素是大规模数据集的良好使用。
相比于图像分类数据集,图像处理任务的可用数据集数量较少(例如,用于图像超分辨率任务的DIV2K数据集上只有2000张图像),作者使用著名的ImageNet作为基线数据集,自己生成所需的数据集,对IPT模型进行预训练。

由于ImageNet基准中的图像具有高度多样性,其中包含来自1000个不同类别的100多万张自然图像。这些图像具有丰富的纹理和颜色信息。首先移除语义标签,然后手动从这些未标记的图像中合成各种损坏的图像,并针对不同的任务使用各种降级模型。

  1. 超分辨率任务通常采用双三次下采样生成低分辨率图像,
  2. 去噪任务在不同噪声水平的原始图像中加入高斯噪声生成带噪图像。

这些合成图像可以显著提高学习深度网络的性能,包括CNN和transformer结构,这将在实验部分证明。

在监督模式下IPT的损失函数可以表示为:

L1分别表示重建图像的常规L1损失,IcorruptediI^i_{corrupted}Icorruptedi​任务iii的损坏图像。此外,公式(4)意味着所提出的框架同时接受多个图像处理任务的训练。

训练过程:
具体来说,对于每个批次,从{N_t}个任务中随机选择一个任务进行训练,每个任务将同时使用相应的头、尾和任务嵌入进行处理。在对IPT模型进行预训练后,它将捕获大量图像处理任务的内在特征和转换。因此只需进一步微调,使用对应任务提供的数据集就可以应用于特定的任务。此外,为了节省计算成本,在微调时将删除其他头部和尾部,并根据反向传播更新剩余的头部、尾部和主干中的参数。

额外的损失函数:
然而,由于退化模型的多样性,无法为所有图像处理任务合成图像。并且在实践中可能存在各种各样的噪声。为此,应进一步增强生成IPT的泛化能力。

与预训练的自然语言处理模型类似,图像块之间的关系也提供了信息。图像场景中的patch可以看作是自然语言处理中的一个词。因此,引入对比学习来学习通用特征,使预训练的IPT模型可以用于未知任务。对比学习的目标是最小化来自相同图像的patch特征之间的距离,同时最大化来自不同图像的patch之间的距离。对比学习的损失函数公式如下:

d(a,b)d(a,b)d(a,b)表示余弦相似度。此外,为了充分利用监督和自监督信息,LIPTL_{IPT}LIPT​作为IPT的最终目标函数。λ用来平衡对比损失与监督损失。损失函数公式重新整合为:

3 Experiments

数据集:
ImageNet数据集,该数据集由超过100万张具有高度多样性的彩色图像组成。训练图像被裁剪成48×48块,有3个通道用于训练。有超过10M的patch用于训练IPT模型。生成了6种退化类型的受损图像:2×、3×、4×双三次插值下采样、30、50噪声级高斯噪声和添加雨纹。使用32张Nvidia Nvidia Tesla V100卡。

3.1 Super-resolution

将IPT模型与几种最先进的基于CNN的SR方法进行了比较。如表1所示,预训练IPT优于所有其他方法,并在所有数据集的×2、×3、×4尺度上实现了最佳性能。值得强调的是,IPT在×2尺度的Urban100数据集上实现了33.76dB的峰值信噪比,这比其他方法的峰值信噪比高出∼0.4dB,而之前的SOTA方法与其他方法相比只能实现<0.2dB的改进,这表明该模型利用大规模预训练的优越性。

图3在Urban100数据集上以4×比例展示了模型的可视化结果。高比例因子下恢复原始高分辨率图像很困难,因为会导致大量信息丢失。以前的方法生成模糊图像,而IPT模型生成的超分辨率图像可以很好地从低分辨率图像中恢复细节。

3.2 Denoising

IPT与各种最先进的模型进行比较。表2展示了BSD68和Urban100数据集上的彩色图像去噪结果
在不同高斯噪声水平下,IPT在所有去噪方法中取得了最好的效果。此外,IPT模型在Urban100数据集上超过SOTA方法~2dB,这证明了预训练的有效性和基于Transformer的模型的优越性。

图4显示了结果图像的可视化。如图所示,噪声图像很难识别,很难恢复干净的图像。现有的方法无法重建足够的细节并生成异常像素。而预训练的模型可以很好地恢复这只猫(???)头发中的一些细节(三只小小鸟),视觉质量明显优于之前的所有模型。

3.3 Deraining

对于图像去雨任务,在合成的Rain100L数据集上评估了IPT模型,该数据集由100幅RAIN图像组成。定量结果见表3。与最先进的方法相比,IPT实现了最好的性能(41.62dB),提高了1.62dB。图5显示了可视化结果。以往的方法由于缺乏图像先验知识,无法重建原始的干净图像。但IPT模型可以呈现与真实图像完全相同的视觉效果。在视觉质量方面通过了之前的所有算法。这一结果证实了所提出模型的普遍性。

3.4 Generalization Ability

虽然作者生成了各种损坏的图像,但自然图像的复杂性很高,无法合成所有可能的图像来预训练Transformer模型。然而,一个好的预训练模型应该能够很好地适应NLP领域的其他任务。为此,进行了一些实验来验证模型的泛化能力。在实验中,测试了合成ImageNet数据集中未包含的损坏图像,即分别使用10级和70级噪声进行图像去噪。使用对应的头部和尾部作为预训练模型进行图像去噪任务。详细结果如表4所示,比较了使用预训练的IPT模型和最先进的图像去噪方法的性能。显然,IPT模型优于其他常规方法,表明预训练的模型可以从大规模数据集中捕获更多有用的信息和特征。

3.5 Ablation Study

①数据百分比的影响
使用合成的ImageNet数据集的20%、40%、60%、80%和100%的百分比来分析所用数据数量对结果性能的影响。图6显示了不同预训练模型的结果。当模型没有经过预训练或使用少量(<60%)数据集进行预训练时,CNN模型可以获得更好的性能。相比之下,当使用大规模数据时,基于Transformer的模型压倒了CNN模型,这证明了IPT预训练模型的有效性。

②对比学习的影响

为了提高预训练模型的表征能力,将对比学习损失嵌入到训练过程中。用Set4数据集评估其在×2尺度超分辨率任务中的有效性。表5显示了超参数λ对平衡两项损失函数的影响。当λ=0时,IPT模型仅使用监督学习方法进行训练,得到的PSNR值为38.27dB。当采用对比损失进行自监督学习时,该模型可以获得38.37dB的PSNR值(λ=0.1),比用λ=0训练的模型高出约0.1dB。这些结果进一步证明了对比学习对预训练IPT模型的有效性。

4 Conclusion

本文旨在利用预训练的Transformer模型(IPT)解决图像处理问题。IPT模型设计有多个头部、多个尾部和一个共享的Transformer体,用于服务不同的图像处理任务,如图像超分辨率和去噪、去雨。

为了最大限度地挖掘transformer架构在各种任务上的性能,探索了一个综合的ImageNet数据集。其中,每个原始图像将被降级为一系列对应的成对训练数据。

然后使用有监督和自监督的方法对IPT模型进行训练,这些方法显示了捕获底层图像处理固有特征的强大能力。

实验结果表明,经过快速微调后,IPT仅使用一个预训练的模型,就可以超越最先进的方法。在未来的工作中,还可以把IPT模型扩展到更多的任务,如图像修复、去雾等。


最后祝各位科研顺利,身体健康,万事胜意~

超分算法IPT:Pre-Trained Image Processing Transformer相关推荐

  1. AliSSR 语音超分算法:让在线会议语音更明亮更自然

    超分让在线会议语音更明亮,在线会议已成为日常工作中较为普遍的沟通交流方式,接入会议的方式也呈现多样化,比如电脑入会.手机入会又或是电话入会. 雪雅.曜辰|作者 众所周知,高采样率且高带宽的音频信号富含 ...

  2. 可生成高清视频的Stable Diffusion来了!分辨率提升4倍,超分算法来自腾讯,支持Colab在线试玩...

    明敏 发自 凹非寺 来源 | 量子位 QbitAI 免费玩的Stable diffusion,又出新变种了! 古典人像丝滑切换,还都是4倍超分辨率水平,细节也就多了亿点点吧,眉毛发丝都根根分明. 还能 ...

  3. 突破网络和屏幕的限制,超分算法让图片和视频秒变清晰

    如上图,从100x133pix→400x532pix,除了肉眼可见的清晰,拥有可以将分辨率提升400%的技术到底意味着什么? 它意味着: 老照片.老电影.动漫等画质可快速提升,分辨率自由调节 产业算法 ...

  4. 传统图片超分算法——双三次插值 (Bicubic)、附C++源码

    呼,花了一个下午,终于是写完加调试完了所有的代码. 双三次插值介绍 之前我写的这篇博客中讲了什么是超分,并实现了单线性插值算法和双线性插值算法.在这里将再介绍一种插值算法--双三次插值算法. 首先,双 ...

  5. 超分算法小合集之SRCNN、DCSCN、SRDenseNet、SRGAN

    阅读指引 SRCNN DCSCN SRDenseNet SRGAN 论文快速指引: SRCNN:Learning a Deep Convolutional Network for Image Supe ...

  6. 针对视频压缩的压缩感知超分算法:COMISR

    作者单位:谷歌 论文链接:https://arxiv.org/pdf/2105.01237.pdf 编者言: 针对H.264等视频压缩标准压缩后的视频进行超分,定量和定性效果相比过去的VSR算法有较大 ...

  7. 图像超分算法小合集二:FSRCNN、DRCN、RDN、EDSR

    目录 FSRCNN DRCN RDN EDSR 文章: FSRCNN : Accelerating the Super-Resolution Convolutional Neural Network ...

  8. 新视频超分算法来了:CVPR 2021 NTIRE 2021 冠军

    来源 | OpenMMLab 编辑 | 刘冰一 转自:AI科技评论 今天给大家带来的干货是新鲜出炉的 CVPR 2021,该文斩获 NTIRE 比赛冠军.目前代码已经 Merge 到 MMEditin ...

  9. ICCV2021—工业界中的神经网络视频传输超分算法

    关注公众号,发现CV技术之美 作者单位:北京邮电大学.Intel中国研究院 论文链接:https://arxiv.org/abs/2108.08202 代码链接:https://github.com/ ...

  10. 超分算法RDN:Residual Dense Network for Image Super-Resolution 超分辨率图像重建

    这篇文章总结分析了ResNet 和DenseNet的优缺点,并将其结合,提出了新的结构ResidualDenseNet.文章中对ResNet 和DenseNet以及MemNet都进行了简单的对比分析. ...

最新文章

  1. python简单代码hello-python教程——【1 hello, python】
  2. js在firefox中的问题
  3. reactor官方文档译文(1)Reactor简介
  4. Ubuntu   root密码
  5. AT4505-[AGC029F]Construction of a tree【构造题,hall定理,网络流】
  6. 树莓派Pico的一些有趣的基本实验
  7. BIO,NIO,AIO
  8. 【狂神JAVA】MyBatis笔记
  9. mysql linux安装百度经验_MySQL 安装(Windows Linux)
  10. qpieslice 渐变效果_在IE9中使用CSS3 PIE的线性渐变不起作用,IE8可以
  11. android o car模块,CarPlay for Android: Bonjour 及 插件源码移植问题分析
  12. 大数据学长面试之华为面试题
  13. oracle新建定时任务,Oracle创建定时任务
  14. 方法、方法的重载(Overload)与重写(Override)
  15. 明尼苏达大学研究者为bug事件致歉
  16. 新能源充电桩控制板迭代升级,打开充电桩行业发展新机遇
  17. Java正则表达式校验密码规则
  18. Openpyxl 修改单元格长宽
  19. 9部最值得一看的黑客电影
  20. K8S建立ipv6集群

热门文章

  1. Kotlin技术 - 委托和代理
  2. 助力数字经济,服务数智化转型,用友火力全开
  3. Windows10 下面一个非常快速而精悍的看图软件 - IrfanView
  4. 引入 ECharts和Bootstrap的bootcdn样式表路径
  5. android app 瘦身,android 将程序移入system/app 为系统瘦身
  6. Linux系统cp:omitting directory`XXX'问题解决
  7. luogu4061 大吉大利,晚上吃鸡!
  8. 洛谷P4061 大吉大利,晚上吃鸡
  9. JAVAGUI设计步骤
  10. 这是一份值得你去查看的Android安全手册