CVPR 2022 | 图像修复!中科大&微软提出PUT:减少Transformer在图像修复应用中的信息损失
点击下方卡片,关注“CVer”公众号
AI/CV重磅干货,第一时间送达
图1 本文方法和现有方法的一些对比结果
本文介绍我们在CVPR 2022发表的用于图像修复的工作。该工作是基于当前流行的Transformer实现的,目的是减少Transformer在应用到图像修复过程中的一些信息损失,从而提升模型修复图片的质量。目前论文和代码都已经公开,欢迎大家试用交流。
论文标题: Reduce Information Loss in Transformers for Pluralistic Image Inpainting
作者单位: 中国科学技术大学,微软云AI
录用信息: CVPR 2022
代码链接: https://github.com/liuqk3/PUT
论文链接: https://arxiv.org/pdf/2205.05076
一、针对问题
本文主要的任务是图像修复,即输入的图片是残缺的,通过算法根据提供的残缺图片来补全图片中残缺的部分。早期的一些工作所利用的模型,一般都是基于CNN实现的。由于CNN具有一定的位置偏置等因素,导致其修复的图片可视化效果并不理想。近两年,随着Transformer在计算机视觉领域的巨大成功,一些研究人员开始利用Transformer来进行图像修复,并取得了非常不错的效果。然而,通过对这些方法进行分析,发现这类方法普遍存在或多或少的信息损失,原因主要有两点:(1)对图片进行下采样。众所周知,Transformer的计算量与输入的序列长度呈平方关系。为了减少计算量,要保证输入Transformer的序列长度在可接受范围内。为此,现有方法会将图片进行下采样,比如从256x256下采样到32x32。这种下采样的方式不可避免地带来了信息损失;(2)量化。像素的个数是256^3,如果直接将每个像素(实际上是索引)都当作一个token,那么Transformer内部的embedding个数也是256^3,较多的embedding不仅带来了较多的参数,也不利于模型训练。因此现有方法会对像素进行聚类量化,比如从256^3个变成512个。量化的过程也会带来信息损失。
图2 本文方法和现有方法的流程对比
本文的方法旨在解决上述的问题。(1)利用auto-encoder代替下采样。auto-encoder中的encoder会将输入的图片分成独立的图片块,每块独立编码,避免信息交叉影响。Decoder负责从输入的量化的特征重构图片;(2)不量化。为了避免Transformer中的信息损失,输入到Transformer中的不是离散的token(即索引),而是encoder出来的特征。离散的token只用作Transformer的输出。图2对比了本文方法和现有方法的流程。
二、方法框架
图3 本文方法的具体流程
本文方法的具体流程如图3所示。整个算法包含两部分:auto-encoder和Transformer。其中auto-encoder是经过特殊设计,专门用于图像修复任务。Transformer也与现有的方法中的Transformer(如DALL-E, IGPT等)稍有不同。下面将分别进行介绍。
1. Auto-encoder
本文方法中的auto-encoder全称为Patch-based Vector Quantized Variational Auto-Encoder(P-VQVAE)。其encoder全部由全连接层构成。输入的残缺图片会被分成独立的图片块,每一块都单独经过encoder进行独立编码。不同的图片块缺失的像素个数也不同。独立编码避免了相互之间的干扰,利用提取更具有区分度的特征。
Encoder输出的特征经过域码本量化之后输入到decoder可以实现图像重构。Decoder是由conv层组成,其不同之处在于有一个参考分支。参考分支的输入就是提供的残缺图片,目的是保证残缺图片中已有的像素值保持不变。当参考分支不使用时,P-VQVAE可以实现和现有auto-encoder一样的作用,即图像重构。
P-VQVAE的训练和VQVAE基本一致,不过我们引入了其他的损失来提高其重构的性能,如引入判别器对抗训练等。
2. Transformer
本方法中的Transformer全称是Un-Quantized Transformer。它的输入是encoder输出的特征,而不是离散的token。这种做法的目的是避免量化引入信息损失。对于每个图片块,Transformer会输出一个概率,这个概率就是图片块对应码本中的特征的概率。在训练阶段,只需要一个简单测交叉熵损失即可。在测试阶段,只要图片块中的任意一个像素缺失,就会其对应概率进行采样,将从码本中采样得到特征向量作为该图片块的特征,并送入decoder用于图像重构。
三、实验结果
与相关工作的定量对比如图4所示,可以看到本文的方法能够取得非常不错的结果,尤其是在ImageNet数据集上的效果更好。然而对于图像修复/生成类的任务,定量的指标很难反应算法的优劣,为此我们提供了大量的可视化结果,分别如图5,6,7,8所示。
图4 本文方法与其他方法的定量对比
图5 本文方法与其他方法在FFHQ上的可视化对比
图6 本文方法与其他方法在Places2上的可视化对比
图7 本文方法与其他方法在ImageNet上的可视化对比
图8 本文方法与其他方法在ImageNet上的可视化对比
四、总结
本文方法针对图像修复任务设计了一个全新的框架,主要是减少现有方法在利用Transformer进行图像修复时的信息损失问题。通过实验可以看到,本文方法在指标、可视化效果上的提升是非常显著的。但是基于Transformer实现的自回归模型,在测试阶段时的速度都比较慢,本文设计的PUT也有这个问题。但是在测试阶段采用自回归的形式,主要目的是得到多样化的结果。当只需要得到一个结果时,实际上可以通过一次网络前传,得到所有的token,进而大大提高测试的速度。另外,采样策略对修复图片的结果影响还是很大的,因此如何设计更加有效的采样策略,是一个值得进一步讨论的问题。
ICCV和CVPR 2021论文和代码下载
后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集
后台回复:ICCV2021,即可下载ICCV 2021论文和代码开源的论文合集
后台回复:Transformer综述,即可下载最新的3篇Transformer综述PDF
目标检测和Transformer交流群成立
扫描下方二维码,或者添加微信:CVer6666,即可添加CVer小助手微信,便可申请加入CVer-目标检测或者Transformer 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer等。
一定要备注:研究方向+地点+学校/公司+昵称(如目标检测或者Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲扫码或加微信: CVer6666,进交流群
CVer学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!
▲扫码进群
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看
微信扫码关注该文公众号作者