开源:人工智能根据文字描述生成罪犯图像,深度学习文本生成图像(趣说人工智能编译,来源github)介绍:
在阅读小说时,我一直很好奇他们提到的人物会如何看待现实。想象一个总体角色仍然是可行的,但将最深刻的细节描述给整个人是非常具有挑战性的,而且往往有不同的人与人之间的解释。很多时候,我最终都会想到一个非常模糊的角色,直到故事结束。只有当这本书被翻译成电影时,模糊的脸上才会充满细节。例如,我从来没有想到“ 火车上的女孩 ”一书中雷切尔的确切面貌。但是当电影出来时(点击预告片),我可以把艾米莉布朗特的脸当成雷切尔的脸。演员专业人员必须付出很多努力才能从剧本中获得角色。
这个问题激发了我,并激励我找到解决方案。此后开始通过深度学习研究文献寻找类似的东西。幸运的是,对于从文本合成图像进行了大量研究。以下是我提到的一些。
在文献研究之后,我想出了一个与StackGAN 相比更简单的体系结构,并且很容易解决问题。在随后的章节中,我将解释已完成的工作并分享迄今获得的初步结果。我还会提到一些编码和培训细节,这些细节花了我一些时间才弄清楚。
开源:人工智能根据文字描述生成罪犯图像,深度学习文本生成图像数据分析:
用于创建深度学习模型的数据无疑是最原始的人工制品:Andrew Ng教授在他的deeplearning.ai课程中提到:“成功进行机器学习的人不是拥有最佳算法的人,而是那个与最好的数据 “。因此,我开始搜索具有丰富多彩文本描述的面部数据集。我偶然发现了大量的数据集与要么只是面对或IDS(认可)或面伴随着结构化信息,如面向眼睛的颜色:蓝色,形状:椭圆形,头发:金发,等等,但不是一个,我是后。我最后的手段是使用我已经完成的早期项目自然语言摘要生成结构化数据, 用于从结构化数据生成自然语言描述。但是这会增加已经噪音的数据集的噪音。
同时一段时间过去了,这项研究提出了Face2Text:收集注释图像描述语料库以生成丰富的脸部描述:正是我想要的。特别感谢Albert Gatt和Marc Tanti提供Face2Text数据集的v1.0 。
所述Face2Text V1.0数据集包含从400个随机选择的图像自然语言描述LFW(在野生标记面)数据集。对这些描述进行清理以消除为图像中的人们提供的不情愿和不相关的标题。一些描述不仅描述了面部特征,而且还提供了来自图片的一些隐含信息。例如,一张脸上的标题写道:“ 图片中的男人可能是罪犯 ” 。由于所有这些因素和相对较小的数据集大小,我决定将其用作我的体系结构的概念验证。最终,我们可以扩展模型以灌输更大更多样化的数据集。
开源:人工智能根据文字描述生成罪犯图像,深度学习文本生成图像结构:
用于T2F的体系结构结合了两种stackGAN体系结构(前面提到过),用于具有调节增强功能的文本编码和面向图像合成的ProGAN(逐步增长的GAN)。原始的stackgan 架构使用不同空间分辨率的多个GAN,对于任何给定的分布匹配问题,我发现了一种矫枉过正的情况。另一方面,ProGAN只使用一个GAN,逐步逐步培训越来越精细(更大)的分辨率。所以,我决定将这两部分结合起来。
为了解释通过网络的数据流,下面是几点:文本描述使用LSTM网络嵌入(psy_t)如图所示。此后,嵌入通过调节增强块(单个线性层)以获得GAN作为输入的潜在向量的文本部分(使用像重新参数化技术的VAE)。潜在向量的第二部分是随机高斯噪声。这样产生的潜在向量被馈送到GAN的发生器部分,而嵌入被馈送到鉴别器的最后一层用于条件分布匹配。GAN的培训进展与ProGAN论文中提到的完全一致; 即逐层增加空间分辨率。新层采用淡入技术来避免破坏以前的学习。
实施和其他细节:
该体系结构是使用PyTorch框架在python中实现的。我之前和tensorflow以及keras一起工作过,所以我想尝试PyTorch一次。我非常喜欢使用python本地调试器来调试网络体系结构; 礼貌的执行策略。Tensorflow最近也包含了一个热切的执行模式。无论如何,这不是关于哪个框架更好的争论,我只是想强调这个架构的代码已经用PyTorch编写了。你可以找到关于如何在github repo github.com/akanimax/T2F上运行代码的实现和注释。
我发现这个架构的很多部分都是可重用的。特别是ProGAN(有条件以及无条件)。因此,我单独编码它们作为PyTorch模块扩展这里,其可被用于其他的数据集,以及。您只需要指定GAN的深度和潜在/特征尺寸,并且该模型会生成适当的体系结构。GAN可以逐步培训您可能需要的任何数据集。
训练细节:
我使用不同的超参数训练了很多版本。正如前一节所述,与训练有关的细节如下:
lamda
= 0.001 的漂移罚分。以下视频显示了发生器的训练时间。使用在GAN训练期间以不同空间分辨率生成的图像来创建视频。
开源:人工智能根据文字描述生成罪犯图像,深度学习文本生成图像结论:
从初步结果来看,我可以断言T2F是一个有一些非常有趣的应用程序的可行项目。例如,T2F可以帮助从他们的描述中识别法律机构的某些犯罪人/受害人。基本上,对于任何我们需要一些入门的应用来启动我们的想象力。我将致力于扩展这个项目,并在Flicker8K数据集,Coco标题数据集等基准测试中进行基准测试。任何建议和贡献都是非常受欢迎的。
GAN的逐步发展是一种以更稳定的方式更快速,更有效地训练GAN的现象技术。这可以与来自其他论文的各种新颖贡献相结合。除了限制GAN培训的技巧和窍门外,我们还可以在很多领域使用它们。该项目的代码可以在我的资源库github.com/akanimax/T2F上找到
运行代码:
代码存在于implementation/子目录中。该实现使用PyTorch框架完成。因此,为了运行此代码,请PyTorch version 0.4.0在继续之前安装。
代码组织::
configs包含训练网络的配置文件。(您可以使用任何一个,或创建自己的)
data_processing:包含数据处理和加载模块的
networks包:包含网络实现
processed_annotations:目录存储运行process_text_annotations.py脚本的输出
process_text_annotations.py:处理字幕并将输出存储在processed_annotations/目录中。(不需要运行这个脚本; pickle文件包含在repo中。)
train_network.py:用于运行网络训练的脚本
联系客服