[论文速览] Vector Quantized Image-to-Image Translation

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损失:

\[L_{vq}=\|\mathrm{sg}[\hat{c}]-c\|_{2}^{2}+\|\mathrm{sg}[c]-\hat{c}\|_{2}^{2}, \tag{2} \]

Diverse Image-to-Image Translation

认为\(E^c\)提取的特征量化后便与特定领域无关(完全解耦?),可以在域之间共享,通过交换两个内容特征便能实现图像翻译(那不就是原来的老路,只是多了层量化)。生成器结合AdaIN来进行风格的转换。

Image-to-Image Translation Training. 使用判别器计算域对抗损失(domain adversarial loss)\(L_{adv}\)(加个domain表示只能用于一类图片上?),说是能提升图片的真实性但是会导致内容风格解耦不彻底(好家伙原来量化不能解决解耦不彻底的问题啊?)。说是需要一个隐风格回归损失(latent style regression loss),它能保证风格特征和转换后的图片之间的双射关系(bijection)。

\[L_{1}^{style}=||E_{X}^{s}(G_{X}(c_{y},s_{x}))-s_{x}| +\left\|E_{Y}^{s}(G_{Y}(c_{x},s_{y}))-s_{y}\right\|. \tag{5} \]

就是要让一个风格唯一地对应一个图片?也就是一个风格不能与不同的内容组合得到风格一致的不同图片?感觉怪怪的。同时也有隐内容回归损失。哦,我说这么眼熟,循环一致损失,你是CycleGAN!

\[L_{1}^{content}=||E_{X}^c(G_{X}(c_{y},s_{x}))-s_{x}| +\left\|E_{Y}^c(G_{Y}(c_{x},s_{y}))-s_{y}\right\|. \tag{6} \]

Self-Reconstruction Training. 自重建训练有两个原因:1.学习codebook 2.对整体图像翻译过程有利 重建损失如下:

\[L_{1}^{recon}=\|G_{X}(c_{x},s_{x})-x\|+\|G_{Y}(c_{y},s_{y})-y\|. \tag{7} \]

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利用率的原因

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/861516.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bat批量修改文件名称

文章目录一、目标二、主要思路三、步骤(一)进入目标文件夹(二)获取所有目标文件名称1、创建文本文档(txt格式)2、写代码3、生成bat文件4、执行bat文件,获取原文件名列表:(三)修改成目标文件名,并拼接成下一步待执行的bat命令1、B列做辅助列,得到新的我们想要改成的…

【Linux】配置网卡中断亲和性

中断亲和性是指处理器在接收到网卡的中断后,由哪些CPU来优先处理。为了提升网络应用的扩展性和降低时延,建议将中断请求IRQs(Interrupt Request)分散在可用的CPU核上。 Linux系统自带负载均衡服务irqbalance,该服务能根据当前CPU使用情况自动将IRQs分散到各个CPU核上执行,…

UHP Modem Add

UHP Modem Add========== End

[转] Android源码对应分支、buildID

一、源码对应分支、Build IDbuild ID 标记版本支持的设备安全补丁级别TQ2A.230505.002.A1 android-13.0.0_r44 Android13 Pixel 4a (5G)、Pixel 5、Pixel 5a (5G) 2023-05-05TQ2A.230505.002 android-13.0.0_r43 Android13 Pixel 4a、Pixel 4a (5G)、Pixel 5、Pixel 5a (5G)、P…

WPF 记录鼠标、触摸多设备混合输入场景问题

本文记录在WPF应用中鼠标、触摸混合输入,鼠标事件抬起时不会有MouseUp事件触发的问题。 事件输入我们都知道有3类:鼠标、触摸、触笔,鼠标是windows系统出来就有的事件,后面加了触笔、触摸。 1.鼠标输入,只会触发Mouse冒泡隧道事件; 2.触笔输入,会触发除了Stylus事件外,…

基于Redis有序集合实现滑动窗口限流

滑动窗口算法是一种基于时间窗口的限流算法,它将时间划分为若干个固定大小的窗口,每个窗口内记录了该时间段内的请求次数。通过动态地滑动窗口,可以动态调整限流的速率,以应对不同的流量变化。 整个限流可以概括为两个主要步骤:统计窗口内的请求数量 应用限流规则Redis有序…

3、RabbitMQ队列之工作队列【RabbitMQ官方教程】

工作队列 使用 php-amqplib 在第一个教程中,我们编写了从命名队列发送和接收消息的程序。在本例中,我们将创建一个工作队列,用于在多个工作人员之间分配耗时的任务。 工作队列(又名:任务队列)背后的主要思想是避免立即执行资源密集型任务,并必须等待其完成。相反,我们把…

静力学FEM12.30

1.静力学方程 考虑图所示变截面弹性杆的静态响应。这是线性应力分析或线弹性问题的一个例子,我们需要求杆内的应力分布σ(x)。 应力由物体的变形产生,而变形由物体内各点的位移u(x)表征。位移导致用ε(x)表示的应变;应变是一个无量纲变量。杆受到分布力b(x)或集中力作用。这…

软件工程个人总结作业

项目 详细信息这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 作业要求这个作业的目标 软工实践个人总结学号 102201233一、学期回顾 1.1 回顾你对于软件工程课程的想象 1.1.1 达到期待和目标的部分算法编写能力的提升目标:提高解决复杂算…

一袋米要抗几楼——软工学期回顾

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13315这个作业的目标 对整个学期的学习进行总结学号 102201130🎓 一、学期回顾 1.1 回顾你对于软件工程课程的想象在上这门课之前,…

java.sql.SQLException: ORA-00600: 内部错误代码, 参数: [kcbnew_3]的其中一个解决方法

ORA-00600 解决方案java.sql.SQLException: ORA-00600: 内部错误代码, 参数: [kcbnew_3]的其中一个解决方法 重启 重启 重启 oracle服务。 今天反馈添加数据库报错 。试了一下就几各别的表不能插入。别的表好好的 GPT一下并检查了表空间都没什么问题。 执行 INSERT INTO DEVIC…

库卡机器人KR240电源模块维修思路讲解

一、库卡机器人KR240电源模块故障诊断 故障诊断是维修过程中的关键步骤。使用库卡提供的诊断工具或软件,对库卡机器人KR240电源模块进行故障诊断。重点关注电源供应、输出电压、电流等关键参数。通过诊断结果,确定故障的具体位置和性质,为后续的维修工作提供明确方向。 二、…