Pre
title: Vector Quantized Image-to-Image Translation
accepted: ECCV 2022
paper: https://arxiv.org/abs/2207.13286
code: https://github.com/cyj407/VQ-I2I
关键词: Image-to-Image Translation, Vector Quantization, Image Synthesis, Generative Models
Idea
向量量化+CycleGAN。对内容特征进行量化,并通过自回归的方式对其建模,可以实现内容的无条件生成和扩展补全等,模型只能针对一个任务学习训练。
Motivation&Solution
当前的图像翻译(image-to-image translation)方法都使用(formulate)条件生成模型,导致被上下文提供的丰富结构信息所限制,只能学到颜色的变化或局部性的风格迁移,没有理解整个目标分布(意思是风格变换不能被原图内容限制?) —— 使内容和图片满足双射+VQ
Background
图1 向量量化图像翻译的应用。 (a)传统的图像翻译 (b)无条件图像生成 (c)图像扩展(image extension) (d)上述操作的任意结合,例如在无条件生成的图片上进行翻译和扩展。 (e)有风格化过渡的图片生成(image generation with transitional stylization) 绿框(green frame)表示夏天的图片,蓝框表示冬天的。
当被表述为生成问题时(upon being formulated as a conditional generation problem),I2I能对配对或非配对数据进行翻译(translation),通过内容风格解耦可以完成很多任务:style transfer, synthesis from semantic map or layout, domain adaptation, super-resolution
Image-to-Image Translation. 两大挑战:如何处理未配对数据、如何建模多样的转换(translation)。
Vector Quantized Generative Models. 生成模型可以粗略地分为两类:隐式和显式的密度估计方法(density estimation methods)。GAN是隐式方法的代表,合成质量高但是训练不稳定,而显式方法易于训练但是输出相对模糊(VAE)或由于自回归过程(PixelRNN, PixelCNN)不好扩展(scaling)。
近来的 vector quantization (VQ) 吸纳了显式方法以减缓扩展问题。
Method(Model)
Overview
图2 方法总览。 a通过解耦的向量量化域不变内容表征和域特定的风格表征实现translation b给定量化 indices d,用Transformer以自回归的方式学习内容分布。 c使用Transformer模型和translation模型,通过对内容图进行扩展来实现image extension功能,左边的indices通过将原内容图水平反转后实现扩充(符合从左到右的自回归习惯)
提出了 VQ-I2I 这个framework,由域不变的内容编码器和域特定的风格编码器以及解码器构成。如图2a所示,给定输入图片,用内容编码器\(E^c\)抽取特征并量化,得到域不变的表征,风格编码器\(E^s_X,E^s_Y\)分别抽取两个域的表征,再分别用两个生成器\(G_X,G_Y\)生成各自域的图片,而判别器也是两个。
(看到这里感觉这玩意不太灵活啊,生成器不能共用?那岂不是一类图片对应训练一个?)
Vector Quantized Content Representation
换一些词语复述了VQ-GAN的量化过程,怎么讲得好像是自己提出的一样?
vq损失:
Diverse Image-to-Image Translation
认为\(E^c\)提取的特征量化后便与特定领域无关(完全解耦?),可以在域之间共享,通过交换两个内容特征便能实现图像翻译(那不就是原来的老路,只是多了层量化)。生成器结合AdaIN来进行风格的转换。
Image-to-Image Translation Training. 使用判别器计算域对抗损失(domain adversarial loss)\(L_{adv}\)(加个domain表示只能用于一类图片上?),说是能提升图片的真实性但是会导致内容风格解耦不彻底(好家伙原来量化不能解决解耦不彻底的问题啊?)。说是需要一个隐风格回归损失(latent style regression loss),它能保证风格特征和转换后的图片之间的双射关系(bijection)。
就是要让一个风格唯一地对应一个图片?也就是一个风格不能与不同的内容组合得到风格一致的不同图片?感觉怪怪的。同时也有隐内容回归损失。哦,我说这么眼熟,循环一致损失,你是CycleGAN!
Self-Reconstruction Training. 自重建训练有两个原因:1.学习codebook 2.对整体图像翻译过程有利 重建损失如下:
Unconditional Generation
通过自回归的方式学习内容分布(学习预测量化的indice),即next-index prediction problem,因此内容可以无条件生成。还是vqgan的内容,只是预测内容图片的indice而非最终生成的结果
Content Extension
如图2c,根据已有图片的内容indice,扩展预测新的indice来实现图片扩展的功能
Experiment
Settings
Compared Baselines. 为了理解隐式表征显式解耦的影响,构建了单模态的VQ-I2I作为额外的baseline(uni-VQ-I2I),说是丢弃了风格特征,默认生成器会隐式地建模风格信息。但是怎么这样就单模态了?原本是多模态?
指标:Fr´echet inception distance (FID), natural image quality evaluator (NIQE)
Dataset
非配对:Yosemite(shape-invariant), AFHQ(shape-variant), portrait(shape-variant)
配对:Cityscapes
Results
Qualitative Evaluation
图3 与传统图像翻译方法比较 (a)不同方法在三个非配对数据集上的结果,从上到下是猫-狗,冬-夏,照片-肖像 (b)能处理Cityscapes数据集的配对数据,语义分割图-街景
图4 多样图像翻译和补全(Translation and Completion) 左边展示了域间和域内的转换 右边是根据四分之一的图片补齐图片。
I2I Translation on Unpaired and Paired Data. 看图3,其中uni-VQ-I2I去掉了内容和风格信息的解耦( 去掉了风格抽取 -> 没有算一致性损失 -> 没有解耦 这个逻辑?),出现了纹理不一致性的问题(第一行中猫的脸出现了多种风格)。与VQ-I2I的对比说明解耦的特性保证了内容稳定和风格多样。
感觉不对吧,去掉了风格特征显式提取,全靠生成器,不就只能学到“猫”这个类别的笼统特征,有这结果也不奇怪,但这个没什么意义吧,大家都知道需要一个风格编码器,也不能说明VQ-I2I就怎么好了,毕竟消融的甚至不是那个风格一致性损失
Multimodal Translation. VQ-I2I也能生成多样的I2I结果(produces diverse (multimodal) I2I results),看样子对多模态有一些独到理解。如图4,除了类间的结果,也有一些类内的转换例子,其风格是同一个域不同图片抽取的,不需要显式的加入类内I2I训练
图5 图像扩展样本
Diverse Image Extension and Completion. 见图5,扩展结果显示VQ-I2I会对原始图片进行轻微修改,使得扩展结果更加和谐(指的是两部分indices拼合后的“愈合”现象?)图4右边是一些补全结果,中间猫脸的下巴太敷衍了,是没有cherry picking还是pick不出来?
图5生成的样本割裂感明显,完全无法放大了看,尤其是扩展的部分,很明显有重复生成现象。而且Boundless有点太弱了吧,没有更好的模型作baseline吗,那可以把长图片裁剪来生成,这样就有合理的gt了
Quantitative Evaluation
表1 与非配对I2I方法的比较。两个指标都越低越好。说是VQ-I2I与其他方法性能差不多,可以做一些传统方法做不到的应用(那么是什么呢?)
表2 应用的比较。 (a)各自采样100张图片算FID(才100张搁这玩误差游戏?) (b)给定输入分辨率256的图片,向右水平扩展,然后截取右侧256x256的部分(也就是一部分原图重建一部分扩展的)拿去跟Yosemite数据集分布算FID(也就是截取了当做独立的图片,然后跟原数据集两个分布去算?)
表3 配对方法的定量比较
FID and NIQE. 表1表2表3指标都很勉强,小数点的FID基本是误差了,打不过作为改进基础的VQGAN,怎么连Boundless都打不过啊,还被Pix2Pix暴打。但作者也有话说了:请注意,我们VQ-I2I不是来跟你们比这些什么什么任务的指标的,而是要在一个统一的新框架下促进(facilitate)translation和域之间共享的无条件分布,并实现一些其他现存工作难以做到的多种有趣应用。(快端上来吧)
图6 用户偏好研究 180个志愿者的用户调查
User Preference. 很新奇的用户调查展示方法,VQ-I2I跟其他方法一一比较,尤其是加上跟真实图片的,这一压缩感觉好像大家又都差不多烂了。
Applications
图7 VQ-I2I的高进应用:过渡风格图片合成。给定两个引导风格和内容图,VQ-I2I能够合成平滑且逐渐改变风格效果的图片
Unconditional Image Generation and Image Extension. 说的应用就是图4,5,1bcd那几个,这也没啥啊?
Stylized Transitional Generation. 可以通过插值两个风格来得到过渡的风格表达,如图7所示,不同部分的内容图应用不同比例的混合风格?但这样感觉实现起来还挺麻烦?内容图10等分
Further Investigation
图8 aPatchNCE的消融研究,显示出该损失这个损失对照片-肖像任务很有用 b定性样本,同样显示出维持肖像数据集的内容信息上很有效
表4 改变codebook大小和维度的消融。每个模型都在 summer->winter 上训练420epoch然后算FID
Adding Patchwise Contrastive Loss. VQ-I2I不包含CycleGAN或DRIT的循环一致性损失,为此引入了patch级别的对比损失,命名为PatchNCE损失。如图8所示,使用该损失很吃任务(不是屁用没有?),所以不用了,换成前面那个内容/风格回归损失。捏麻麻地,特意写点故事来凑字数是吧
Varying Codebook Size and Dimensionality. 见表4,当两项都设置为512时,VQ-I2I只用了35个code左右,而两项都缩减到64则codebook利用率达到100%,但表中指标都十分接近。(毕竟一个模型需要处理一种转换任务?)
Conclusion
强调用了向量量化这个“新”,性能不足但是功能多
Critique
好像没啥新意?把vqgan搬到I2I这来,而且生成质量还不好
行文部分一般,由于没啥内容重复度也很高
实验部分,图1的绿框和蓝框不是很明显,画得不太好,而且分辨率也太低了,但仍然能看出没有很好维持风格转换前的内容。图3有点太水了吧,尤其是图3b,怎么都是老东西,至少跟vqgan比比吧?
“Further Investigation”没有分析那个codebook利用率的原因