简单来说就是使用VQGAN对图像进行压缩为离散的序列(存储于codebook),在codebook空间训练了一个基于transformer的自回归模型。
充分利用了CNN对于图像的编码能力和局部感知,再通过transformer建模每个局部的全局关系。减少了transformer随图片分辨率增长导致的平方倍内存消耗和计算需求。
高分辨率图像合成需要一个模型来理解图像的全局组合,使其能够生成局部逼真和全局一致的模式。
我们的方法使用卷积神经网络VQGAN来学习上下文丰富的视觉部分的码本,其组合随后使用自回归transormer架构建模。
离散码本提供了这些体系结构和基于补丁的鉴别器之间的接口,可以在保持高感知质量的同时实现强大的压缩。
该方法引入CNN提高了基于transormer的高分辨率图像合成的效率。
解码器仅优化第一个损失项,编码器优化第一个和最后一个损失项,嵌入 z q z_q zq由中间损失项优化。
L G A N ( { E , G , Z } , D ) = [ log D ( x ) + log ( 1 − D ( x ^ ) ) ] \mathcal{L}_{\mathrm{GAN}}(\{E, G, \mathcal{Z}\}, D)=[\log D(x)+\log (1-D(\hat{x}))] LGAN({E,G,Z},D)=[logD(x)+log(1−D(x^))]
Q ∗ = arg min E , G , Z max D E x ∼ p ( x ) [ L V Q ( E , G , Z ) + λ L G A N ( { E , G , Z } , D ) ] \begin{aligned} \mathcal{Q}^{*}=\underset{E, G, \mathcal{Z}}{\arg \min } \max _{D} \mathbb{E}_{x \sim p(x)}\left[\mathcal{L}_{\mathrm{VQ}}(E, G, \mathcal{Z})\right. \\ \left.+\lambda \mathcal{L}_{\mathrm{GAN}}(\{E, G, \mathcal{Z}\}, D)\right] \end{aligned} Q∗=E,G,ZargminDmaxEx∼p(x)[LVQ(E,G,Z)+λLGAN({E,G,Z},D)]
λ = ∇ G L [ L r e c ] ∇ G L [ L G A N ] + δ \lambda=\frac{\nabla_{G_{L}}\left[\mathcal{L}_{\mathrm{rec}}\right]}{\nabla_{G_{L}}\left[\mathcal{L}_{\mathrm{GAN}}\right]+\delta} λ=∇GL[LGAN]+δ∇GL[Lrec]
图像经过encoder之后的编码在codebook中对应的索引假设为s。在选择索引的某种排序后(对应着图像encoder后的编码),图像生成可以表述为自回归下一个索引预测:
任务是在给定此信息 c 的情况下学习序列的可能性:
p ( s ∣ c ) = ∏ i p ( s i ∣ s < i , c ) p(s \mid c)=\prod_{i} p\left(s_{i} \mid s_{p(s∣c)=∏ip(si∣s<i,c)
如果条件信息 c 具有空间范围,我们首先学习另一个 VQGAN 再次获得基于索引的表示 r ∈ {0,…, |Zc|−1}hc ×wc 与新获得的码本 Zc 由于变压器的自回归结构,我们可以简单地将 r 前置到 s 并将负对数似然的计算限制为条目 p(si|s
合成高分辨率图像
为了生成百万像素范围内的图像,因此我们必须处理补丁和裁剪图像,以在训练期间将 s 的长度限制为最大可行的大小。为了对图像进行采样,我们以滑动窗口的方式使用Transformer。
我们的VQGAN 确保可用的上下文仍然足以忠实地对图像进行建模,只要数据集的统计数据近似空间不变或空间条件信息可用。
我们通常设置|Z|=1024,并训练所有后续的transformers模型来预测长度为16·16的序列
transormers在很多任务上包括自回归图像生成取得了sota,那么现在的结构是否还能保证比CNN更强?
相比于SOTA的卷积自回归方法,相同epochs或者相同时间下的Transformer取得了更的负对数似然
考察有条件生成,使用了类标签或分割图等附加信息c,目标是学习如式 p ( s ∣ c ) = ∏ i p ( s i ∣ s < i , c ) p(s \mid c)=\prod_{i} p\left(s_{i} \mid s_{p(s∣c)=∏ip(si∣s<i,c)所述的图像分布。
(i):语义图像合成,我们以ADE20K[72]、网络抓取景观数据集(S-FLCKR)和COCO-Stuff的语义分割掩码为条件。结果如图4、5和图6所示。
(ii):结构到图像,我们使用深度或边缘信息从 RIN 和 IN 合成图像(参见第 4.1 节)。得到的深度图像和边缘到图像转换如图4和图6所示。
(iii):姿势引导合成:图 4 显示了与之前实验相同的方法可用于在 DeepFashion 数据集上构建形状条件生成模型,而不是使用分割或深度图的语义丰富的信息。
(iv):随机超分辨率,其中低分辨率图像用作条件信息,从而进行上采样。我们在 ImageNet 上训练我们的模型上采样因子为 8,结果如图 6 所示。
(v):类条件图像合成:在这里,条件信息 c 是描述感兴趣类标签的单个索引。RIN 数据集的条件采样结果如图 4 所示。
第3.2节介绍的滑动窗口方法使图像合成超出256 × 256像素的分辨率。我们在LSUN-CT和FacesHQ上的无条件图像生成上评估我们的方法(见第4.3节),并在DRIN、COCO-Stuff和S-FLCKR上进行条件合成,我们在图1、6和补充中显示了结果(图17-27)。请注意,这种方法原则上可以用于生成任意比率和大小的图像,因为感兴趣的数据集的图像统计信息大致是空间不变的,或者空间信息是可用的。通过将该方法应用于S-FLCKR上语义布局的图像生成,可以获得令人印象深刻的结果,其中m = 5可以学习强VQGAN,使其码本和条件信息为变压器提供了足够的上下文,用于百万像素区域的图像生成。
为了研究这个问题,我们进行了 Transformer 架构保持固定的实验,而编码到第一阶段表示的上下文数量通过我们的 VQGAN 的下采样块的数量而变化。
图7显示了FacesHQ上人脸无条件合成的结果,CelebA-HQ和FFHQ的组合。它通过增加变压器的有效感受野清楚地展示了强大的VQGAN的好处。对于小感受野,或者等效地小 f ,模型无法捕获连贯的结构。对于f = 8的中间值,可以近似图像的整体结构,但出现了半胡须脸和图像不同部位视点等面部特征的不一致。只有我们的完整模型off = 16可以合成高保真样本。对于 S-FLCKR 的条件设置中的类似结果,我们参考附录(图 10 和 Sec. B)。
为了定量评估我们方法的有效性,我们比较了**直接在像素上训练转换器的结果,并在具有固定计算预算的 VQGAN 潜在代码之上对其进行训练。**学习 CIFAR10 上 512 个 RGB 值字典,直接在像素空间上操作,并在我们的 VQGAN 之上训练相同的变压器架构,潜在代码大小为 16 × 16 = 256。我们观察到 FID 的改进为 18.63%,图像采样速度快 14.08×。
本文解决了以前将transformer限制在低分辨率图像中的基本挑战。我们提出了一种将图像表示为感知丰富的图像成分的组合的方法,从而克服了直接在像素空间中建模图像时不可行的二次复杂度。使用 CNN 架构及其与 Transformer 架构的组合建模成分利用了它们互补优势的全部潜力,从而允许我们使用基于转换器的架构表示高分辨率图像合成的第一个结果。在实验中,**我们的方法通过合成百万像素范围内的图像,证明了CNN归纳偏差和transformer的表达能力,并优于最先进的卷积方法。**配备了条件合成的一般机制,它为新的神经渲染方法提供了许多机会。
40页的俘虏就不摆放啦,做了非常多的实验,可以细看论文