【文献阅读与想法笔记13】Pre-Trained Image Processing Transformer

本文主要是介绍【文献阅读与想法笔记13】Pre-Trained Image Processing Transformer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

任务目标

low-level computer vision task

  • denoising(30,50)
  • super-resolution(X2,X3,X4)
  • deraining

贡献与创新(个人认为有价值的部分)

  • IPT模型采用多头多尾共享的变压器体,用于图像超分辨率和去噪等不同的图像处理任务。

  • 为了最大限度地挖掘Transformer结构在各种任务上的性能,探索了一个合成的ImageNet数据集。

  • 对比学习的加入稳定、提升Transformer

  • 实现较为完整的可复用的预训练模型和训练策略(单数据集预训练支持多任务(预训练有可能为图像处理任务提供一个有吸引力的解决方案)

实现这些贡献的价值

  • 优势一:特定任务的数据可能是有限的。可以应用在涉及付费数据或数据隐私的图像处理的任务中,如医学图像和卫星图像。

Pre-training has the potential to provide an attractive solution to image processing tasks by addressing the following two challenges: First, task-specific data can be limited. such as medical images and satellite images.

  • 优势二:各种不一致的因素(如摄像机参数、光照、天气等)会进一步干扰采集到的训练数据的分布。其次,它是未知的类型的图像处理工作将被要求,直到测试图像出现。因此,我们必须准备一系列的图像处理模块在手。他们有不同的目标,但一些基本操作可以共享。

Various inconsistent factors (e.g. camera parameter, illumination and weather) can further perturb the distribution of the captured data for training. Second, it is unknown which type of image processing job will be requested until the test image is presented. We therefore have to prepare a series of image processing modules at hand. They have distinct aims, but some underlying operations could be shared.

网络结构说明

训练图像被输入到特定的头部,生成的特征被裁剪成小块(即“单词”),并随后被平摊成序列。利用变压器本体处理扁平特征,其中位置嵌入和任务嵌入分别用于编码器和解码器。

The training images are input to the specific head, and the generated features are cropped into patches (i.e., “words”) and flattened to sequences subsequently. The transformer body is employed to process the flattened features in which position and task embedding are utilized for encoder and decoder, respectively.

image processing transformer (IPT)

image-20210829104842814

  • 结构一

heads for extracting features from the input corrupted images (e.g., images with noise and low-resolution images)

image-20210829164305933

  • 结构二,结构三

an encoder-decoder transformer is established for recovering the missing information in input data

image-20210829164353942

image-20210829164413035

  • 结构四

tails are used for mapping the features into restored images

训练细节

Imagenet预训练

数据集的制作

we present to utilize the well-known ImageNet benchmark for generating a large amount of corrupted image pairs.

ImageNet 1M的高多样性彩色图像组成

10M 48×48patches(overlap10)

2X、3X、4Xbicubic插值、30、50噪声级高斯噪声和添加雨点等6种

CNN模型也采用了相同的测试策略,得到的CNN模型的PSNR值与它们的基线相同。

设备平台

32张Nvidia Nvidia Tesla V100

优化设置

Adam优化器,β1= 0.9, β2= 0.999

300个epoch的训练。0-200 学习率设置为5e−5,200-300到2e−5

Batchsize= 256

300e随机结束后,30个e的微调5e−5

loss

image-20210829155618111

  • 第一部分:L1范数部分

随机选择一个task进行训练,每个task同时使用相应的head, tail和task embedding进行处理。

每一个头,尾,Encoder,Decoder都会被训练到

  • 第二部分:对比学习部分

需要进一步提高所得IPT的泛化能力。与训练前的自然语言处理模型相似,图像中的小块之间的关系也很有用。图像场景中的补丁可以看作是自然语言处理中的一个词。例如,从相同的特征图上裁剪出来的补丁更有可能一起出现,它们应该嵌入到相似的位置。

目标是使相同图像上的补丁特征之间的距离最小,同时使不同图像上的补丁之间的距离最大。

x j x_j xj​是一个batch中的一个图片 x j ∈ X , X = { x 1 , x 2 , ⋯ x B } x_j\in X,X = \{x_1,x_2,\cdots x_B\} xjX,X={x1,x2,xB}​​​

x j x_j xj解码输出的特征图 f D i j ∈ R P 2 × C , i = { 1 , … , N } f_{D_{i}}^{j} \in \mathbb{R}^{P^{2} \times C}, i=\{1, \ldots, N\} fDijRP2×C,i={1,,N}

余弦相似性 d ( a , b ) = a T b ∥ a ∥ ∥ b ∥ d(a, b)=\frac{a^{T} b}{\|a\|\|b\|} d(a,b)=abaTb

D i D_i Di表示不同的解码器的输出共有 N N N个解码器

训练细节

对于每批任务,我们N_t$ task中随机选择一个task进行训练,每个task同时使用相应的head, tail和task embedding进行处理。在对IPT模型进行预训练后,它将捕获大量图像处理任务的内在特征和转换,从而可以进一步微调,使用新提供的数据集应用于所需的任务。另外,为了节省计算成本,将其他头像和尾巴丢弃,并根据反向传播更新剩余头像、尾巴和身体中的参数。

测试与性能

测试数据集

Rain100L dataset [79]

Urban100

测试细节

  • The result images are converted into YCbCr color space. The PSNR is evaluated on the Y channel only.

测试结论

参数与计算量

整个IPT有114m parameters和33gflops,与传统的CNN模型相比(例如EDSR有43m parameters和99gflops)有更多的参数而更少的FLOPs。

总体表现

image-20210829110050850

超分表现

image-20210829152505423

去噪表现

去雨表现

消融实验与泛化性

有价值的实验 去噪训练3050 测试10 70 (泛化性能表现)

image-20210829152547097

数据集选择性实验(实用价值)

当模型未进行预训练或使用整个数据集的少量(< 60%)进行预训练时,CNN模型取得了较好的性能。相比之下,在使用大规模数据时,基于转换器的模型优于CNN模型,这证明了IPT模型对预训练的有效性。

image-20210829152911406

对比学习消融实验

附录

去模糊实验

GoPro dataset [54]

image-20210829154542940

Embeddings实验

自动 固定 无 (自动最优)不同任务的差异在0.2 ~ 0.3dB

可视化

任务嵌入可视化 分析训练完毕后的嵌入部分网络参数可视化和任务的相关性

代码开源

pytorch gpu版本

huawei-noah/Pretrained-IPT

mindspore npu版本

mindspore: MindSpore is a new open source deep learning training/inference framework that could be used for mobile, edge and cloud scenarios. - Gitee.com

个人评价

  • need pre-trained = 不能判断是在大数据及预训练所带来的性能提升还是网络结构所带来的提升

  • ViT的使用和调整

  • 1000万张图片的数据量,patch处理后更大,再加之需要做六种不同的退化

  • 输入像素在像素尺寸上固定

  • T的问题是否会出现于flatten

要参考的其它文献

SRCNN [20,21]

Ahnet al. [2] and Limet al. [50] propose introduce residual block into SR task. Zhanget al. [92] and Anwar and Barnes [3] utilize the power of attention to enhance the performance on SR task. A various excellent works are also proposed for the other tasks, such as denoising [68,32,37,45,24], dehazing [6,46,85,80], deraining [36,78,62,29,74,47], and debluring [67,53,23,10].

【26】Jun Fu, Jing Liu, Haijie Tian, Y ong Li, Y ongjun Bao, Zhi-wei Fang, and Hanqing Lu. Dual attention network forscene segmentation. InProceedings of the IEEE Confer-ence on Computer Vision and Pattern Recognition, pages3146–3154, 2019.3

Wanget al. [75], Chenet al. [15], Jiangetal. [38] and Zhanget al. [91] also augment features by self-attention to enhance model performance on several high-level vision tasks.

[31,1] 提供退化方式:,超分辨率任务通常采用双三次退化来生成低分辨率图像,去噪任务在不同噪声水平的干净图像中加入高斯噪声来生成噪声图像

[79] 加雨

这篇关于【文献阅读与想法笔记13】Pre-Trained Image Processing Transformer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/176484

相关文章

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi