零样本风格迁移:多模态CLIP文本驱动图像生成

英伟达实习生利用CLIP和StyleGAN结合,提出零样本风格迁移方法,只需文本指令即可生成艺术风格转换图像,无需依赖目标域数据。研究还探讨了如何提取CLIP语义并正则化优化过程,提升生成图像的质量和多样性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击上方“视学算法”,选择加"星标"或“置顶”
重磅干货,第一时间送达

来源:GitHub ,新智元

【导读】零样本的风格迁移听说过没有?英伟达一个实习生小哥集文本CLIP和图像生成StyleGAN于一身,只需要输入几个单词就可以完成你想要的风格迁移效果!再也不用为了风格迁移找数据啦!

StyleGAN想必大家都不陌生了,它借助生成对抗网络(GAN)对捕获丰富语义的潜在空间和模拟图像分布的能力,可以用来换脸、风格迁移、换肤色等等,一般的输入数据都是源域的图像和目标域的图像。

 

但这些模型的应用范围仅限于可以收集大量图像的域,这一要求严重限制了其适用性。事实上,在许多情况下(例如某个特定艺术家的绘画),可能没有足够的数据来训练一个GAN,甚至面临根本没有任何数据的情况。

 

根据以往的经验,大规模预训练模型已经见到了足够多的域的数据,也就是说直接使用Vision语言模型也许可以不用收集数据,直接根据文本就可以召回相关域的图像。

 

有了数据就可以建立一个文本驱动的图像生成器啦!

 

英伟达的实习生 Rinon Gal 最近提出这样一个模型,不需要图像输入就可以做StyleGAN,秘诀就是利用CLIP模型的多模态能力。

 

 

这种文本驱动的方法域外(out-of-domain)的图像生成,研究人员引入了一个训练方案,该方案只使用文本提示词,就可以将预训练的模型的域转移到一个新的域。

域转移(domain shift)的实现是通过修改生成器对与文本对齐的图像的权重来实现的。

 

 

例如上图中,研究人员修改了针对真实人脸和汽车的图像生成器,就可以生成特定艺术风格的绘画。还可以在教堂里训练生成器以生成纽约市的图像。

 

但这种模型是相当于是「盲目」训练(train blindly)的,在训练过程中看不到目标域的任何图像,也就是说这符合zero-shot的设定。

 

 

这个模型主要由两个核心组件构成,StyleGAN和CLIP。

 

近年来,StyleGAN及其后继模型已然是无条件图像生成领域的老大哥,能够合成质量非常高图像。

 

StyleGAN生成器由两部分组成,首先,映射网络将从高斯分布采样的隐编码转换为学习的隐空间中的向量。然后把这些隐向量输入到第二个组件合成网络,用来控制网络中不同层的特征。

 

之前的研究也证明了,通过遍历这个中间隐空间W,或者通过在不同的网络层上混合不同的W编码,能够对生成图像中语义属性的细粒度控制。

 

但这种潜在空间传输通常仅限于域内修改,也就是说,它被约束到具有与初始训练集匹配的属性的图像的流形。相比之下,这篇论文的目标是在不同域之间转换生成器,而不只是在隐空间内编辑或是微调语义感知。

 

结合StyleGAN的生成能力和CLIP的语义知识能力的模型最近也有人提出,模型叫StyleCLIP,并且提出三种方法来利用CLIP的语义表达能力:

 

1、隐优化技术(latent optimization technique),使用标准的反向传播方法修改给定的潜编码,使得生成的图像和给定的目标文本之间的CLIP-space内距离最小。研究人员将这个损失函数命名为全局CLIP损失。

2、隐映射(latent mapper),训练网络将输入的隐编码转换为修改生成图像中文本描述属性的编码。这个映射器使用相同的全局CLIP损失进行训练,从而最小化到目标文本的CLIP-space距离。对于一些剧烈的形状修改,我们发现训练这样一个潜在的映射器可以帮助提高识别结果-

 

3、通过确定修改哪些维度的隐编码会导致图像空间变化,从而发现GAN隐空间中有意义的变化方向。

 

这三个方法训练和推理时间变化很大,但它们都与其他隐空间编辑方法有一个共同的特点,它们应用于给定图像的修改在很大程度上受限于预训练生成器的图像域。

所以,StyleCLIP能够改变发型、表情,甚至可以将狼变成狮子,但他们不能将照片变成其他风格的绘画。

 

为此研究人员主要从两方面基于StyleCLIP又做了改进:

(1) 如何才能最好地提取封装在CLIP中的语义信息?

(2)应该如何正则化优化过程以避免模式崩溃?

 

首先就是损失函数的修改,除了之前提到的全局CLIP损失,第二个损失函数用来保留多样性和防止图像崩溃。一个图像对包含两个图像,一个由参考生成器生成,另一个由修改的可训练的生成器使用相同的隐编码生成。

 

 

把参考图像和目标图像的embedding按照CLIP-space中源文本和目标文本的embedding方向对齐。

这个损失函数可以克服全局CLIP损失的缺点,如果目标生成器仅创建单个图像,则从所有源到该目标图像的剪辑空间方向将不同,所以它们不能全部与文本方向一致。

其次,网络很难收敛到通用的解决方案,因此必须加入干扰来欺骗CLIP。

 

在实验部分,下图可以看到如何从狗生成到各种动物。对于所有动物翻译实验,在每次迭代中将可训练层的数量设置为三层,并训练隐映射器以减少源域数据的泄漏。

可以看到变化主要集中在样式或较小的形状调整上。例如,许多动物都会竖起右耳,而大多数AFHQ数据集中的狗品种则不会。

 

 

除了zero-shot外,研究人员还将方法与两种few-shot方案进行比较,即Ojha提出的模型和MineGAN进行比较。

第一种方法侧重于保持源域的多样性,同时适应目标域的风格,而后一种方法则通过引导GAN朝向更好地匹配目标集分布的隐空间域来稳定训练,但会牺牲一定的多样性。

下图可以看到虽然论文中提出的模型生成的图片可以看出来有人工生成的痕迹,但它成功地避免了备选方案显示的过度拟合和模式崩溃结果,保持了高度的多样性,并且能够在不提供任何目标域图像的情况下实现了这一点。

 

 

参考资料:

https://stylegan-nada.github.io/

点个在看 paper不断!

### CLIP多模态算法概述 CLIP(Contrastive Language–Image Pre-training)是由OpenAI开发的一种用于连接图像和文本多模态模型[^2]。该模型通过对比学习的方式,将不同形式的数据映射到同一特征空间内,在此空间中语义相近的内容会彼此靠近。 #### 算法原理 在训练过程中,CLIP接收成对的图片及其对应的描述作为输入,并尝试最小化正样本间的距离而最大化负样本间差异。具体来说: - **编码器结构**:分别构建了两个独立却参数共享的神经网络——一个是用来处理自然语言句子序列的文字编码器;另一个则是针对视觉信息设计的对象识别卷积神经网路(CNN)或Transformer架构的图像编码器。 - **损失函数定义**:对于每一对关联的图文组合而言,如果它们被正确配对,则视为正类;反之则属于错误匹配即为负类。整个过程旨在优化一个基于余弦相似度计算得到的概率分布下的交叉熵损失值。 ```python import torch.nn.functional as F def contrastive_loss(image_embeddings, text_embeddings): logits = image_embeddings @ text_embeddings.T / temperature labels = torch.arange(len(logits)) loss_i = F.cross_entropy(logits, labels) loss_t = F.cross_entropy(logits.T, labels) return (loss_i + loss_t)/2 ``` #### 实现细节 为了使模型能够泛化至未见过的任务上,CLIP采用了大量的互联网抓取数据来进行无标签式的自我监督预训练。这些海量且多样化的实例有助于捕捉广泛存在的跨模式联系规律,从而赋予模型强大的zero-shot迁移能力[^3]。 此外,由于引入了先进的注意力机制以及精心调整后的超参配置方案,使得最终产出的结果具备较高的鲁棒性和表达力。 #### 应用场景 得益于其出色的性能表现,CLIP已被广泛应用到了诸如零样本图像分类、文本引导的目标检测等领域之中。不仅如此,在一些创意生成任务里也能见到它的身影,比如根据给定提示词合成逼真的艺术作品等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值