0


使用VQGAN+CLIP从图鉴文本描述中生成神奇宝贝

点击上方“Deephub Imba”,关注公众号,好文章不错过 !

还记得我们一年前发布的使用GAN生成神奇宝贝的文章吗,今天他的改进版本来了,这次我们根据文字描述来生成神奇宝贝。

以前的文章:翻车现场:我用pytorch和GAN做了一个生成神奇宝贝的失败模型

先看看结果,这几个你们都认识吗,它们分别是:蒜头蛤蟆、喷火蜥蜴、呲水王八和黄皮耗子。不得不说,现在的AI技术真的太强大了😆

VQGAN+CLIP(Vector Quantised General Adversarial Network + Contrastive Language - Image Pre-training)是最近新兴的“数据艺术”的最新研究之一,现在已被用于创作一些令人惊叹的艺术作品。它接收文本输入并返回根据文本描述生成的图像。本篇文章我将看看它是否可以从 Pokédex 的图鉴描述中绘制 Pokémon。

数据来源

https://pokemondb.net/pokedex/,是一个非常完善的神奇宝贝数据库,在里面可以找到几乎所有的神奇宝贝图鉴(描述),我们使用这些描述生成妙蛙种子、杰尼龟、小火龙和皮卡丘。

它是如何工作的,我们怎么开始?

我在 Github 上找到了 justinjohn0306 的一个jupyter notebook,我们可以使用它直接从文本生成图像。地址在文章最后提供。

我在下面生成的图片中已经添加了Pokédex 条目以及随机种子的编号(使用我的设置可以复现结果)。在获取了 Pokédex 图鉴后,需要用符号将它们分开并将它们添加到notebook中,例如“条目1 |条目 2 |条目 3”,并确保它们保持相同的顺序。但是需要注意的是:模型也是确实会更新,使用跟我一样的随机种子并不总是能够返回相同的图像,因为它们每次都会重新创建。

在这个模型中VQGAN 部分基于预训练的语料库生成图像,而 CLIP 部分将图像与标题进行关联,并使用提供的文字指导生成过程。训练的过程会使用不同的图像集训练不同的模型。在推理时,通过为其提供大量标题,该模型会将图像混合在一起,这样生成的图像看起来就像我们提供的三个标题了。

对于这个实验,我使用了笔记本上可用的“imagenet_16384”预训练模型。对于 GPU,我们可以使用免费的 Colab。

需要注意的是,Pokédex 描述来自神奇宝贝不同的作品(现在已经到第8代剑/盾了),所以为了寻找最合适的描述和种子需要一些试验试错。在这里我只使用了图鉴描述,没有使用其他短语或辅助工具。在本篇文章中我决定在描述中留下神奇宝贝的名字。

妙蛙种子(Bulbasaur)

图鉴描述,这里我就不翻译了,前面是作品的名称,后面是英文描述

如果你对神奇宝贝不太熟悉,这里我再给出一个官方的图鉴,作为对比:

红/蓝(第一代): “A strange seed was planted on its back at birth. The plant sprouts and grows with this POKéMON”

黄(皮卡丘版): “It can go for days without eating a single morsel. In the bulb on its back, it stores energy.”

红宝石/蓝宝石/绿宝石(第三代): “BULBASAUR can be seen napping in bright sunlight. There is a seed on its back. By soaking up the sun’s rays, the seed grows progressively larger.”

Bulbasaur — Seed 1

最初它看起来像是得到了一种背上有植物的动物的一般感觉。已经有点蒜头的意思了吧。

Bulbasaur — Seed 2

它开始收集一个小生物的想法,在这种情况下,背上有一些叶子,后面还有个像石头还是水仙(大蒜)发芽的东西。

Bulbasaur — Seed 13

看起来像一个蓝色生物,背上还有类似阳光,因为在黄(皮卡丘版)的描述中提到了能量(太阳光线可是妙蛙花的技能啊)。

总的来说,人工智能的表现比我第一次尝试时的预期要好。

小火龙(Charmander)

红/蓝: “Obviously prefers hot places. When it rains, steam is said to spout from the tip of its tail.

黄: “The flame at the tip of its tail makes a sound as it burns. You can only hear it in quiet places. ”*

红宝石/蓝宝石: “*The flame that burns at the tip of its tail is an indication of its emotions. The flame wavers when CHARMANDER is happy, and blazes when it is enraged.*”

剑/盾: “It has a preference for hot things. When it rains, steam is said to spout from the tip of its tail.”*

Charmander — seed 4

它马上就能很好地理解它在绘制什么。这张照片突出显示了 Charmander 是蜥蜴而不是其他爬行动物的样子。

Charmander — seed 7

虽然它不是 Charmander,但它有尾巴、形状和从尾巴出来的烟雾,背景是蓝色的火焰。有点恐龙的意思了。

Charmander — seed 8

显然有一个带有发光尾巴的火龙的形象。然而,但是这个不是更像彩虹小马么。

杰尼龟(Squirtle)

红宝石/蓝宝石: “*SQUIRTLE’s shell is not merely used for protection. The shell’s rounded shape and the grooves on its surface help minimize resistance in water, enabling this POKéMON to swim at high speeds.*”

红/蓝: “*After birth, its back swells and hardens into a shell. Powerfully sprays foam from its mouth.*”

黄: “Shoots water at prey while in the water. Withdraws into its shell when in danger.

火红(第三代): “*When it retracts its long neck into its shell, it squirts out water with vigorous force.*”

Squirtle — Seed 7

它已经弄清楚Squirtle是一只乌龟。并成功地尝试使泡泡和水枪。

Squirtle — Seed 8

在这张图片中可以更清楚地看到一只海龟和海浪还有泡泡。

Squirtle — Seed 11

在这里,我们在海滩上有一只小乌龟。但是上面是什么?没太看懂。

皮卡丘(Pikachu)

最后就是我们的皮神

蓝宝石: “This POKéMON has electricity-storing pouches on its cheeks. These appear to become electrically charged during the night while PIKACHU sleeps. It occasionally discharges electricity when it is dozy after waking up.”

魂银: “*It raises its tail to check its surroundings. The tail is sometimes struck by lightning in this pose.*”

钻石:“ *It lives in forests with others. It stores electricity in the pouches on its cheeks.*”

Pikachu — Seed 1

令人印象深刻的是,AI很快就知道了它是一只会放电的老鼠,虽然电流不是从脸颊发出的,但是这个效果是不是很想DC的闪电侠。

Pikachu — Seed 9

它似乎成功地理解了老鼠在这次尝试中从脸颊射出电流的想法。但是黄皮耗子的黄呢?

最后的想法

总的来说,我对结果印象深刻。根据我的实验,我确实相信在 Pokédex 条目中包含 Pokémon 的名字有助于模型收敛到你在上面看到的图像,但是这意味着有些 Pokémon 可能已经出现在训练集中(数据泄露了)。下图是上面“Charmander-seed 4”的重复图,在输入的图鉴条目中没有“Charmander”这个词。结果显示了一只带有长长火焰尾巴的金属的什么东西,而不是上面的橙色图像。

尽管结果不是很好,但是VQGAN+CLIP 做出的推理和图像质量比我预期的更令人印象深刻。期待更多地探索它们。

最后github代码在这里:https://github.com/justinjohn0306/VQGAN-CLIP

作者:peter capsalis

喜欢就关注一下吧:

点个 在看 你最好看!********** **********

标签:

“使用VQGAN+CLIP从图鉴文本描述中生成神奇宝贝”的评论:

还没有评论