当前位置: 首页 > news >正文

(2021|CoRR,AugCLIP,优化)FuseDream:通过改进的 CLIP+GAN 空间优化实现免训练文本到图像生成

FuseDream: Training-Free Text-to-Image Generation  with Improved CLIP+GAN Space Optimization

公众:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料)

目录

0. 摘要

1. 简介

2. CLIP+GAN 文本到图像生成

2.1 CLIP容易受到攻击并陷入困境

3. 我们的方法 - FuseDream

3.1 AugCLIP:避免对抗生成

3.2 优化改进

3.3 组合生成

4. 相关工作 

5. 实验

6. 结论

S. 总结

S.1 主要贡献

S.2 方法


0. 摘要

生成图像从自然语言指令是一个引人入胜但极具挑战性的任务。我们采用了一种 CLIP+GAN 的方法来进行文本到图像的生成,该方法在现成的 GAN 的潜在空间中进行优化,以找到在 CLIP 模型度量下,与给定输入文本具有最大语义相关性分数的图像。与从头开始训练将文本映射到图像的传统方法相比,CLIP+GAN 方法是无需训练的、zero-shot 的,并且可以轻松定制以适应不同的生成器。

然而,在 GAN 空间中优化 CLIP 分数是一个极具挑战性的优化问题,像 Adam 这样的现成优化器未能产生令人满意的结果。在这项工作中,我们提出了一种 FuseDream 流水线,通过三种关键技术改进了 CLIP+GAN 方法: 1)通过在图像上引入随机增强来使标准的 CLIP 分数更加稳健的AugCLIP 分数。2)一种新颖的初始化和超参数化策略,允许我们有效地在 GAN 空间中的非凸区域进行优化。3)一种组合生成技术,通过利用一种新颖的双层优化公式,可以组合多个图像以扩展 GAN 空间并克服数据偏见。

在受到不同输入文本的推动时,FuseDream 能够生成具有不同对象、背景、艺术风格和新颖的反事实概念的高质量图像,这些概念在我们使用的 GAN 的训练数据中并未出现。在定量方面,FuseDream 生成的图像在 MS COCO 数据集上获得了顶级的 Inception 分数和 FID 分数,而无需额外的架构设计或培训。我们的代码可在 https://github.com/gnobitab/FuseDream 上公开获取。

1. 简介

在多模态机器学习中的一个重要任务是文本到图像生成,即生成与给定文本输入在语义上相关的逼真图像 [9,18,25,26,31,35]。这是一项极具挑战性的任务,因为生成模型需要理解文本、图像以及它们在语义上应该如何关联。最近,[9, 25] 取得了显著的进展,它们使用在大规模数据集上进行自监督损失训练的模型生成了高质量且语义相关的图像。

传统的文本到图像生成方法是使用(文本,图像)对的数据集从头开始训练有条件的生成模型 [18, 22, 25, 26, 31, 35]。然而,这个过程需要收集大量的训练数据,带来高昂的培训成本,并且不容易定制。最近,随着强大的联合文本-图像编码器的出现(特别是 CLIP 模型 [24]),它们提供了文本-图像对的忠实语义相关性得分。结合强大的预训练 GAN(如 [1, 4, 18, 40]),通过在 GAN 的潜在空间中进行优化,创建与输入文本具有高语义相关性的图像已经成为可能。值得注意的例子包括 BigSleep [20] 和 VQGAN+CLIP [6],它们分别通过在 BigGAN 和 VQGAN 的潜在空间中最大化CLIP 分数来从文本生成引人入胜和艺术性的图像。与传统基准相比,结合 GAN 和 CLIP 的方法是无需训练且 zero-shot 的,不需要专门的训练数据集和训练成本。它还更加灵活和模块化:用户可以轻松替换生成器(GAN)或编码器模型(CLIP)为更强大或定制的模型,以最适合其问题和计算预算。

另一方面,现有的 CLIP+GAN 方法的结果 [6, 10, 20] 在许多情况下仍然令人不满意。例如,虽然BigSleep 能够以不同的风格生成图像并创造有趣的视觉艺术,但在生成清晰和逼真的图像方面存在困难,生成的图像可能只与 query 文本弱相关。如图 1 所示(每个面板的右上角),BigSleep无法为 “蓝色狗” 这个简单概念生成一个清晰可辨认的图像。对于像 “火焰狗” 这样的反事实概念,BigSleep 生成的图像往往以一种不自然的方式纠缠了火焰和狗的概念。在图 1 中(每个面板的左上角),我们实施了另一个基准,使用现成的Adam [17] 优化器在 BigGAN [4] 的输入空间中最大化 CLIP 分数,结果甚至比 BigSleep 更糟糕。

在这项工作中,我们分析了现有 CLIP+GAN 过程中的问题。我们确定了该方法存在的三个关键瓶颈,并通过一系列技术来显著改进这个流程。

  • 稳健分数:我们观察到原始的 CLIP 分数在 GAN 空间中并不适用作为优化的良好目标函数,因为 它倾向于生成语义无关的图像,这些图像 “对抗性” 地最大化了 CLIP 分数。我们提出了 AugCLIP分数,通过对输入图像的多个扰动或增强进行平均来稳健 CLIP 分数。
  • 改进的优化策略:在 GAN 空间中最大化 CLIP 分数会产生一个高度非凸的多模态优化问题,现成的优化方法往往会陷入次优的局部最大值。我们通过一种新颖的初始化和过参数化策略来解决这个问题,允许我们更有效地在非凸损失中遍历。
  • 组合生成:CLIP+GAN 方法的图像空间受到我们使用的预训练 GAN 的限制。这使得难以生成在GAN 的训练数据中没有出现的对象的新组合的图像。我们通过提出一种组合生成技术来解决这个问题,该技术共同优化两个图像,使它们可以无缝地组合在一起,产生自然且在语义上相关的图像。我们将组合生成制定为一种新颖的双层优化问题,最大化 AugCLIP 分数,同时将感知一致性分数作为次要目标,并利用一种最近的动态障碍梯度下降算法 [11] 有效地解决它。

我们的流程,我们称之为 FuseDream(名称中的 “fuse” 指的是: 1. 融合 GAN 和 CLIP 以及 2. 我们的组合生成技术),不仅可以从复杂的文本描述中生成清晰的对象,还可以生成类似 MS COCO [19] 中的复杂场景。由于 CLIP 的表征能力,FuseDream 可以创建具有不同背景、纹理、位置、艺术风格甚至反事实对象的图像。借助组合生成技术,FuseDream 可以创建具有在我们使用的 GAN 的原始训练数据中没有出现的对象的新组合的图像。与直接训练大规模文本到图像生成模型相比,我们的方法在保持可比甚至更好的结果的同时更加计算友好。

2. CLIP+GAN 文本到图像生成

首先,我们介绍通过结合预训练图像生成器(特别是 GAN)和联合图像+文本编码器(特别是CLIP)进行文本到图像生成的一般思路。然后,我们分析这种方法的朴素实现的一个关键限制。

GAN:图像生成器 g:R^D → R^(H×W×3) 是一个神经网络,接受一个 D 维潜在编码 ξ,并输出尺寸为 H × W 的彩色图像 I。形式上,I = g(ξ)。

可以通过控制输入的 ξ 生成和操纵不同的图像。在这项工作中,除非另有说明,我们使用 BigGAN [4],这是一个类别条件的 GAN,其潜在向量 ξ = {z, y} 包括一个高斯噪声向量 z ∈ R^Z 和一个类别嵌入向量 y ∈ R^Y。它是在大规模的 ImageNet数据集 [27] 上训练的,包含来自 1,000 个不同类别的对象。

CLIP:一个联合图像-文本编码器,尤其是对比语言-图像预训练(Contrastive Language-Image Pretraining, CLIP)[24],由语言编码器 f_text 和图像编码器 f_image 组成,它们将文本 T 和图像 I 映射到一个共同的潜在空间,通过余弦相似性可以评估它们的相关性。

CLIP 模型经过训练,使得语义相关的文本-图像对 T 和 I 具有高相似性分数。

CLIP+GAN:通过结合预训练的 GAN g 和 CLIP {f_text, f_image},可以合成一个文本到图像的生成器。给定一个输入文本 T,我们可以通过优化潜在编码 ξ 生成一个与 T 在语义上相关的逼真图像 I,使得生成的图像 I = g(ξ) 具有最大的 CLIP 分数 s_CLIP(T, I)。形式上,

这将使输出图像限制在自然图像的空间内,同时最大化与输入文本的语义相关性。在 [20, 39] 中,使用 Adam [17] 解决优化问题。在使用 BigGAN [4, 16] 时,通常的做法是将 z 截断为 [-2, 2]。 

2.1 CLIP容易受到攻击并陷入困境

简单地解决(2)不会产生令人满意的图像,如图 1 左上角的图像所示。我们观察到不令人满意的结果可以归因于两个相互关联的原因:

  • CLIP 分数很容易受到 “攻击”,即在任何图像的小邻域内很容易最大化 CLIP,表明存在具有高CLIP 分数但与输入文本关联性低的 “对抗性” 图像。
  • 在(2)中的优化实际上可以有效地作为对 s_CLIP 的对抗性优化,产生与初始化相似但虚假高 CLIP 分数的图像。

案例研究 1:攻击 CLIP。如图 2 所示,我们对自然图像 I 应用对抗攻击器,使用 Fast Gradient Sign Method(FGSM)[13] 在 sCLIP 上进行操作,即解决 max s_CLIP(I + δ) s.t. ||δ|| ≤ ε,其中小扰动的幅度 ε > 0。我们发现 FGSM 可以轻松找到一个几乎与原始图像相同但具有更高 CLIP 分数的图像。这表明在直接最大化 CLIP 分数时存在 “过拟合” 的危险。

案例研究 2:Dog → Cat。在图 3 中,我们展示了使用输入文本 T = ‘一张猫的照片’ 优化(2)的一个示例,从一个初始化的 ξ^0 开始,其图像 I = g(ξ^0) 是一只狗。我们可以看到尽管成功地最大化了 s_CLIP,图像仍然与初始化相似,并且没有按预期从狗转变为猫。在这种情况下,(2)中的优化表现出对抗性攻击的行为:它在初始化附近被困住,同时虚假地增加了 CLIP 分数。

在上述两种情况中,可以通过使用我们在接下来介绍的 AugCLIP 分数来解决问题。

3. 我们的方法 - FuseDream

我们现在介绍改进 CLIP+GAN 管道的主要技术。第 3.1 节介绍了 AugCLIP 分数,该分数使 CLIP分数更加健壮,以避免对抗性攻击现象。第 3.2 节介绍了一种初始化和过参数化(over-parameterization)技术,以更好地解决非凸优化问题。第 3.3 节介绍了一种组合生成方法,用于生成具有新颖对象和背景组合的分布外图像。

3.1 AugCLIP:避免对抗生成

为了解决 CLIP 分数的对抗性攻击问题,我们提出以下 AugCLIP 分数。 

其中 I' 是来自候选数据增强分布 π(· | I) 的输入图像 I 的随机扰动。在我们的工作中,我们采用了 DiffAugment [38] 中考虑的各种数据增强技术,包括随机着色、随机平移、随机调整大小和随机剪裁。

由于 AugCLIP 必须同时攻击大多数随机增强图像上的  s_CLIP,这比攻击单个图像要困难得多,因此 AugCLIP 对抗对攻击更加稳健。对随机增强的平均化还使得攻击更加困难,正如理论和经验证明的那样 [5, 28]。同时,增加增强并不损害由 CLIP 编码的语义关系,因为 CLIP 模型最初是在具有不同着色、视图和平移的图像上训练的,因此与我们的增强策略兼容。

 

案例研究 1 和 2。如图 3 所示,AugCLIP 分数对抗对攻击更加稳健。图 4 显示,简单地用 s_AugCLIP 替换 s_CLIP 允许我们摆脱对抗生成并产生更具语义相关性的图像。

3.2 优化改进

由于损失的高非凸性,s_AugCLIP 的优化仍然可能受到次优局部极大值的影响。我们引入了一种初始化和过参数化策略来改善优化。 与从单一初始化开始的传统方法不同,我们首先采样大量( M 个)初始化副本

然后我们选择具有最高 AugCLIP 分数的前 k 个初始化,即

并将它们用作后续优化的初始基向量。换句话说,我们将解(solution)重新参数化为

并联合优化基向量和系数,其中 w(i) ∈ R。

其中,{ ξ_(i) } 初始化为选定的 k 个

而 w_(i) 初始化为 1/k。我们设置 M = 10,000(可以并行评估)和相对较小的 k(例如,k ≤ 15)。

尽管等式(4)中的优化等效于等式(2)中的优化,但它配备过参数化,以及更自然的坐标和更好的初始化,因此在使用基于梯度的优化方法时往往会产生更好的结果。特别是,组合权重 {w_(i)} 的更新对应于在基向量

的线性空间中的快速全局移动,使其更容易逃离局部最优点。

在实践中,由于我们使用 BigGAN,潜在编码 ξ = (z, y) 被初始化为 z ~ N(0, I),而 y 则从 ImageNet 的 1,000 类别的潜在表示中随机选择(这比我们在附录中展示的 y ~ N(0, I) 更好)。

基于梯度或无梯度的优化器?在这项工作中,我们采用了广泛使用的 Adam [17] 优化器。一些最近的工作推荐在 GAN 空间中进行优化时使用无梯度优化器,如 BasinCMA [3, 16, 32],因为存在很高的非凸性。然而,我们的研究表明,与 Adam 相比,BasinCMA 往往会带来更高的计算成本,因为 BasinCMA 在每次迭代时需要在目标上进行大量前向传递,而 Adam 只需要单次前向和后向传递。经验上,我们发现 Adam 比 BasinCMA 快大约 20 倍。尽管基于梯度的方法比无梯度的方法更容易陷入局部最优点,但在我们的 AugCLIP 损失和提出的初始化和过参数化技术下,这不再是一个问题。我们在附录中包含了更多与 BasinCMA 的讨论和比较。

3.3 组合生成

CLIP+GAN 方法的图像空间受我们使用的 GAN 的表示能力限制。这使得该方法难以生成超出分布范围的图像,并且容易继承来自 GAN 的原始训练集的数据偏差,例如中心、空间和颜色偏差 [2, 16]。我们提出了组合生成,通过将 GAN 生成的两幅图像组合在一起,以增加图像空间并减少数据偏差,获得更高的灵活性。我们的方法共同优化前景图像 I_fg = g( ~ξ_fg) 和背景图像 I_bg = g( ~ξ_bg),其中 ~ξ_fg 和 ~ξ_bg 是两个过参数化的潜在编码,如公式 4 所示。这两幅图像用于生成融合图像

首先,设置 I_fg 的大小缩放因子为 α ∈ (0,1),然后将其粘贴在 I_bg 上的九个位置(t ∈ {left, center, right}^2)之一。我们希望选择 ~ξ := {~ξ_fg, ~ξ_bg},以及 ~α := {α , t},以最大化 I 的 AugCLIP 分数:

另一方面,由于两个图像 I_fg 和 I_bg 是独立生成的,合成图像可能在边界上具有不自然和人工的不连续性。为了解决这个问题,我们引入了一个额外的损失,强制在 I_fg 和 I_bg 之间保持感知一致性, 

其中,𝑙_per 代表 LPIPS 度量[37],这是一种近似人类对图像相似性感知的度量。

因此,我们希望既最大化 AugCLIP 分数,又最小化感知损失 𝑙_Fuse。一个朴素的方法是优化它们的线性组合。然而,这将需要在生成每个图像时仔细而逐个案例地调整组合系数。

双层优化:我们提出了一种无调优方法,通过一个简单的双层(或词典)优化问题来组合这两个损失(参见例如 [8, 12])

在这里,arg max sFuse 表示 s_Fuse 的(局部)极大值的集合。这个公式在 s_Fuse 的最优集合中寻找那些最小化 𝑙_Fuse 的点。它优先考虑优化 s_Fuse,同时将 𝑙_Fuse 作为次要损失进行考虑。

我们通过在离散集合 α ∈ {0.65, 0.5} 和 t ∈ {left, center, right}^2 上进行蛮力搜索来优化 ~α = {α, t}。对于每个固定的 ~α ,我们使用来自 [12] 的动态障碍梯度下降算法来优化连续向量 ~ξ,这产生了以下简单的迭代规则。

在这里,ε^t > 0 是步长;β 是一个超参数(默认为 1)。直观地说,可以将这个算法视为迭代地最小化线性组合的损失 𝑙_Fuse - λ_t·s_Fuse,其中系数 λ_t 动态地由梯度 ▽𝑙_Fuse 和 ▽s_Fuse 之间的角度决定,移除 -▽𝑙_Fuse 中与 s_Fuse 冲突的成分,以确保 s_Fuse 在作为主要损失时单调递减。有关更多详细信息,请参阅附录和 [11]。

在实践中,我们通过将 v^t 视为梯度方向,将等式(6)与 Adam 结合起来。此外,我们通过在 I_fg 和 I_bg 上应用 Poisson blending 来获得最终的合成图像,从而产生更平滑的图像 I,遵循[16]。我们的算法总结在 Alg. 2 中。

4. 相关工作 

在生成对抗网络(GAN)的潜在空间中进行优化的一般思想已被广泛应用作为一个强大的框架,用于生成、编辑和恢复图像;例如,参见 [1, 14, 16, 39] 等。例如,[39] 提出将真实图像投影到GAN 的潜在空间以编辑图像。[14] 把主成分分析(principal component analysis,PCA)应用到 GAN 空间,为图像合成创建可解释的控制。[16] 通过无梯度优化器 BasinCMA [3, 32] 优化潜在编码,将给定图像嵌入到 BigGAN [4] 中,以在 GAN 空间中实现灵活的图像编辑。最近的一项工作[7] 使用逐层优化来提高解决逆问题(inverse problems,例如超分辨率和修复)在 GAN 空间中的性能。大多数这些方法仅专注于图像域上的单一任务,而我们的方法旨在通过利用 CLIP 的能力将图像与文本连接起来。

在另一个方向上,使用 CLIP 分数 [24] 的思想已经在各个方向上得到了探索,包括视频检索 [21]、视觉问答 [30]和语言引导的图像操作/生成 [6, 10, 20, 23] 等。特别地,[23] 采用了 CLIP 和StyleGAN 来引导简单图像(通常是脸部、宠物或汽车的照片)的风格。[6, 10, 20] 是实现了基本GAN+CLIP 过程的开源存储库,我们通过新技术在这个基础上有了显著的改进。

5. 实验

我们将配备 BigGAN-256 的 FuseDream 与一些基线方法进行比较,包括 DM-GAN [40]、Obj-GAN [18]、CogView [9] 等。我们在流行的 MS COCO 数据集 [19] 上测试这些方法,并发现尽管BigGAN 在 ImageNet 上进行了预训练,但 FuseDream 明显优于基线方法。由于 CLIP 带来的丰富表示能力,FuseDream 可以生成具有不同方面的图像,包括艺术风格、天气、背景、纹理等,能够创造不存在的、反事实但合理的对象。此外,通过组合生成技术,我们可以生成具有多个对象的更好图像。请参见附录以查看论文中显示的图像的高分辨率副本。

在 MS COCO 测试集上的定量评估。为了与其他文本到图像生成方法进行比较,我们在从 COCO数据集中采样的 30,000 个标题的子集上评估我们的方法。我们遵循 [18, 31, 35, 40] 中提供的相同标准评估协议,使用 [18] 提供的官方代码。我们使用 Fréchet Inception Distance(FID)、Inception Score(IS)和 R-precision 来评估性能。对于 R-precision,按照 [18, 31, 35, 40] 的方法,我们计算全局图像向量与通过预训练的 CNN-RNN 检索模型 [35] 提取的 100 个候选句向量之间的余弦相似度。候选文本描述包括一个真实标题和 99 个随机选择的不相关句子。 R-precision 计算为所有 30,000 个生成图像的检索精度。我们随机重复该过程 3 次,并报告 R-precision 的均值和标准差。注意,基线 GAN 通常是针对最大化该分数进行训练的。为了公平比较,我们将 [35]中使用的检索模型替换为 CLIP 文本和图像编码器,并报告额外的 CLIP R-precision 分数。

结果如表 1 所示。FuseDream 在 IS 分数上达到了与真实图像相当的水平(34.26 对比 34.88)。与在数十亿互联网图像上进行训练并具有巨大计算成本的 DALL-E [25] 和 CogView [9] 相比,我们显著提高了 IS 分数,从约 18 提高到 34,FID从 27 降低到 21(例如,对于使用 BigGAN-256、k = 5 的 FuseDream,FID 为 21.16)。请注意,我们使用的 BigGAN 是在 ImageNet 上进行训练的,尽管评估是在 COCO 图像上进行的;通过使用在 COCO 数据集上训练的更强大的生成模型,我们可以期望获得更好的结果。

从 COCO 标题生成的图像。我们在图 7 中展示了 FuseDream 根据 COCO 数据集中的输入标题生成的一些图像。FuseDream 生成具有更多细节和目标的图像。例如,对于给定的 “夜晚商业街角上的交通和人群”,FuseDream 可以生成人群、汽车和繁华的街道,灯光璀璨。

变化的艺术风格。尽管 BigGAN 是在 ImageNet 上训练的,其中的图像大多是现实的,但通过CLIP,FuseDream 能够以不同的艺术风格生成有意义的图像,如图 6 中的第一行所示。这些图像具有六种不同的风格,例如照片、单色、版画、绘画、抽象绘画和水墨画。即使输入句子很复杂,我们也可以生成具有许多粒度的有意义的虚假图像。给定来自 Percy Shelley 的《致西风颂》的句子(“古老的宫殿和塔楼在波涛汹涌的日光中颤动”),FuseDream 成功生成了宫殿、塔楼、波涛和日光。

变化的纹理、背景和更多内容: 如 [14, 29] 所示,在标准 GAN 中很难控制纹理和背景。然而,FuseDream 可以通过输入句子很好地控制图像的纹理和背景。如图 6 的第二行和第三行所示,FuseDream 可以轻松将汽车放在不同的背景中(例如水下、夜晚、天空),并具有不同的纹理(例如丰富多彩的光辉、星空、幽灵)。将对象更改为机器人,我们还可以在不同的天气条件下(例如雨天、阳光明媚、雪天)生成有意义但虚假的机器人。此外,通过生成明显不同的餐点,FuseDream 似乎表现出对文化差异的理解:美国的餐点包含玉米、土豆泥和炸鸡;俄罗斯的餐点包含黑面包和俄式红菜汤;中国的餐点包含蛋饺和春卷。

生成反事实内容: 在先前的例子中,我们展示了一些反事实的例子,例如图 1 中的燃烧的狗,图 6 中的天空中的汽车。在这里,我们使用 FuseDream 生成更多具有不同对象、背景和风格的高质量反事实图像。图 8 展示了我们可以生成 “发光发亮的狗”、“天空中的城堡”、“立方体蝴蝶” 和 “水下森林” 等图像。这些图像具有不同的对象、背景和风格,并且在现实世界中不存在,也不在BigGAN 的 ImageNet 训练数据中。令人惊讶的是,尽管我们从未更改 BigGAN 的参数,FuseDream 成功地生成了这些高质量的跨域图像。

FuseDream-Composition 中的多个概念: 通过生成包含两个对象的图像,我们验证了组合生成技术的性能。这两个对象通常不会在正常图像中同时出现,例如猫和蝴蝶,狗和教堂等。如图 9 所示,FuseDream(使用单个图像生成)可能将两个对象缠绕在一起,或者遗漏其中一个对象。例如,“一只狗靠近一艘船” 生成了一艘带有狗状帆的船。“一只蝴蝶靠近一艘船” 只生成了一只蝴蝶,而忽略了船。然而,通过使用组合生成,我们可以生成包含两个对象的图像。即使对于更复杂的句子,我们也可以生成有意义且高质量的图像(见图 9 中的第二行)。

为验证我们的方法对随机种子的鲁棒性,我们在图 10 中为 “一只色彩斑斓的机器人在月光下走在冰冻的湖面上” 生成了更多的图像;我们获得了与句子相关的多样化的图像集。

6. 结论

我们提出了 FuseDream,利用 CLIP 引导的 GAN 实现高质量、最先进的文本到图像生成。与传统的基于训练的方法相比,我们的方法无需训练,零样本,易于定制,因此易于访问计算资源有限或有特殊需求的用户。我们的新颖技术,如 AugCLIP 分数、过参数化优化(over-parameterized optimization)和组合生成(composed generation),具有独立的兴趣,并在其他潜在空间优化问题中具有用处。

S. 总结

S.1 主要贡献

相比于传统的从头训练的文本到图像生成,CLIP+GAN 是无需训练的、zero-shot 的,并且可以轻松定制以适应不同的生成器。

本文提出了一种 FuseDream,通过三种关键技术改进了 CLIP+GAN 方法: 1)提出 AugCLIP 分数:通过在图像上引入随机增强,来避免 CLIP 分数的对抗攻击现象。2)利用新颖的初始化和过参数化(over-parameterization)策略,从而可在 GAN 空间中的非凸区域进行优化。3)利用双层优化,组合多个图像以扩展 GAN 空间。

S.2 方法

AugCLIP。CLIP 分数存在对抗性攻击问题:一张图像与原始图像相同,但具有更高 CLIP 分数。为解决这个问题,提出了 AugCLIP 分数:

其中 I' 是来自候选数据增强分布 π(· | I) 的输入图像 I 的随机扰动。本文采用了 DiffAugment 中考虑的各种数据增强技术,包括随机着色、随机平移、随机调整大小和随机剪裁。 

初始化和过参数化。

  • 由于损失的高非凸性,s_AugCLIP 的优化仍然可能受到次优局部极大值的影响。本文引入了一种初始化和过参数化策略来改善优化。 
  • 与从单一初始化开始的传统方法不同,本文首先采样大量( M 个)初始化副本,然后选择具有最高 AugCLIP 分数的前 k 个初始化,并将它们用作后续优化的初始基向量。
  • 因为它有过参数化,以及更自然的坐标和更好的初始化,因此在使用基于梯度的优化方法时往往会产生更好的结果。

组合生成和双层优化

  • 通过将 GAN 生成的两幅图像组合在一起,以生成超出分布范围的图像。
  • 该方法共同优化前景图像和背景图像,然后用这两幅图像生成融合图像。
  • 为避免合成图像可能在边界上具有不自然和人工的不连续性,引入了一个额外的感知损失,强制前景和背景之间保持感知一致性。
  • 最终目标是最大化 AugCLIP 分数,并最小化感知损失。一个朴素的方法是优化它们的线性组合。然而,这将需要在生成每个图像时仔细而逐个案例地调整组合系数。本文提出了一种无调优方法,通过一个简单的双层(或词典)优化问题来组合这两个损失。

相关文章:

(2021|CoRR,AugCLIP,优化)FuseDream:通过改进的 CLIP+GAN 空间优化实现免训练文本到图像生成

FuseDream: Training-Free Text-to-Image Generation with Improved CLIPGAN Space Optimization 公众:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料) 目录 0. 摘要 1. 简介 2. CLIPGAN 文本到图…...

python pip安装依赖的常用软件源

目录 引言 一、什么是镜像源?​​​​​​​ 二、清华源 三、阿里源 四、中科大源 五、豆瓣源 六、更多资源 引言 在软件开发和使用过程中,我们经常需要下载和更新各种软件包和库文件。然而,由于网络环境的限制或者服务器的负载&#…...

避免大M取值过大引起的数值问题

在数学建模当中,常常会见到大M法,它之所以叫大M法,是因为它涉及到一个(绝对值)较大的系数M,这个大M的值应大于约束中的连续变量或者约束表达式可能取到的任何合理值,M值取过大往往会造成优化问题…...

史密斯圆图的使用

史密斯圆图的使用 简介识别史密斯圆图等反射系数圆归一化阻抗圆导纳圆图史密斯圆图的使用单支匹配双支匹配简介 史密斯图Smith Chart是电气工程,无线电,射频工程,微波工程和通信等领域常用的一种图示工具,用于分析和设计传输线和阻抗匹配网络,它由美国工程师Phillip H.Sm…...

可重复读解决了哪些问题? 对 SQL 慢查询会考虑哪些优化 ?

文章目录 可重复读解决了哪些问题?对 SQL 慢查询会考虑哪些优化 ? 可重复读解决了哪些问题? (1)可重复读的核心就是一致性读(consistent read);保证多次读取同一个数据时,其值都和事务开始时候的内容是一致…...

从0开始python学习-35.allure报告企业定制

目录 1. 搭建allure环境 2. 生成报告 3. logo定制 4. 企业级报告内容或层级定制 5. allure局域网查看 1. 搭建allure环境 1.1 JDK,使用PyCharm 找到pycharm安装目录找到java.exe记下jbr目录的完整路径,eg: C:\Program Files\JetBrains\PyCharm Com…...

蓝桥杯2020年10月青少组Python程序设计省赛真题

1、设计一个猜字母的程序,程序随机给出26个小写字母中的一个,答题者输入猜测的字母,若输入的不是26个小写字母之一,让用户重新输入,若字母在答案之前或之后,程序给出相应正确提示,如答错5次,则答题失败并退出游戏,若回答正确,程序输出回答次数并退出游戏。 2、试编一个“口…...

【数据结构】布隆过滤器原理详解及其代码实现

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推荐--…...

Qt中实现短信验证码功能

在Qt中实现短信验证码功能,可以使用Qt的信号槽机制和计时器来实现。 首先,在mainwindow.h头文件中添加下列代码: #include <QMainWindow> #include <QTimer>namespace Ui {class MainWindow; }class MainWindow : public...

Redis-运维

转自 极客时间 Redis 亚风 原文视频&#xff1a;https://u.geekbang.org/lesson/535?article681062 Redis 同步 Redis主从数据同步,主从第⼀次同步是全量同步 replicaof 主机 端口 #当前这个机器做Master的备份master如何判断slave是不是第⼀次来同步数据&#xff1a; Repl…...

Qt制作定时关机小程序

文章目录 完成效果图ui界面ui样图 main函数窗口文件头文件cpp文件 引言 一般定时关机采用命令行模式&#xff0c;还需要我们计算在多久后关机&#xff0c;我们可以做一个小程序来定时关机 完成效果图 ui界面 <?xml version"1.0" encoding"UTF-8"?>…...

LeetCode day30

LeetCode day30 害&#xff0c;昨天和今天在搞数据结构的报告&#xff0c;后面应该也会把哈夫曼的大作业写上来。 今天认识认识贪心算法。(&#xff61;&#xff65;∀&#xff65;)&#xff89; 2697. 字典序最小回文串 给你一个由 小写英文字母 组成的字符串 s &#xff0c;…...

数据分析基础之《numpy(5)—合并与分割》

了解即可&#xff0c;用panads 一、作用 实现数据的切分和合并&#xff0c;将数据进行切分合并处理 二、合并 1、numpy.hstack 水平拼接 # hstack 水平拼接 a np.array((1,2,3)) b np.array((2,3,4)) np.hstack((a, b))a np.array([[1], [2], [3]]) b np.array([[2], […...

centos 安装 Miniconda

在 CentOS 上安装 Miniconda 的步骤通常包括下载 Miniconda 安装脚本、运行脚本以及配置环境。以下是详细步骤&#xff1a; 1. 下载 Miniconda 安装脚本 首先&#xff0c;您需要从 Miniconda 的官方网站下载适用于 Linux 的安装脚本。您可以使用 wget 命令在 CentOS 终端中直…...

第二百二十六回

文章目录 1. 概念介绍2. 具体细节2.1 发现服务2.2 发现特征值2.3 发送数据2.4 接收数据 3. 代码与效果3.13.2 运行效果 4. 经验总结 我们在上一章回中介绍了"连接蓝牙设备的细节"相关的内容&#xff0c;本章回中将介绍通过蓝牙发送数据的细节.闲话休提&#xff0c;让…...

ubuntu常用指令

Ubuntu是一个基于Linux的操作系统&#xff0c;它使用了大量的命令行指令。这些指令对于管理系统、处理文件、监控资源和执行各种任务都非常有用。以下是一些常用的Ubuntu命令&#xff1a; 系统管理 sudo&#xff1a;提供管理员权限执行命令&#xff08;例如 sudo apt update&a…...

Quartz.NET 事件监听器

1、调度器监听器 调度器本身收到的一些事件通知&#xff0c;接口ISchedulerListener&#xff0c;如作业的添加、删除、停止、挂起等事件通知&#xff0c;调度器的启动、关闭、出错等事件通知&#xff0c;触发器的暂停、挂起等事件通知&#xff0c;接口部分定义如下&#xff1a…...

2024-AI人工智能学习-安装了pip install pydot但是还是报错

2024-AI人工智能学习-安装了pip install pydot但是还是报错 出现这样子的错误&#xff1a; /usr/local/bin/python3.11 /Users/wangyang/PycharmProjects/studyPython/tf_model.py 2023-12-24 22:59:02.238366: I tensorflow/core/platform/cpu_feature_guard.cc:182] This …...

在使用mapstruct,想忽略掉List<DTO>字段里面的,`data` 字段的映射, 如何写ignore: 使用@IterableMapping

在使用mapstruct,想忽略掉List字段里面的,data 字段的映射, 如何写ignore 代码如下: public interface AssigmentFileMapper {AssigmentFileDTO assigmentFileToAssigmentFileDTO(AssigmentFile assigmentFile);AssigmentFile assigmentFileDTOToAssigmentFile(Assigment…...

ansible-playbook的Temlates模块 tags模块 Roles模块

Temlates模块 jinja模板架构&#xff0c;通过模板可以实现向模板文件传参(python转义)把占位符参数传到配置文件中去,生产一个目标文本文件&#xff0c;传递变量到需要的配置文件当中 &#xff08;web开发&#xff09; nginx.conf.j2 早文件当中配置的是占位符&#xff08;声明…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的&#xff0c;需要先安…...