全球人工智能
提交材料:news@top25.cn
感知图像编辑器可以大规模修改图像的语义层次
图像生成模型生成的图像真实感逐渐提高,这让人们意识到生成网络的目的远不止是生成图像。
本文以《基于内省对抗网络的图像编辑器》一文为基础。本文作者提出了一种感知图像编辑器,它是一种图像编辑界面,可以利用生成神经网络的能力,在较大的语义层次上对图像进行合理的修改。为了在不损失特征属性的情况下实现精确重建,作者创新性地提出了一种结合GAN和VAE的内省对抗网络。通过使用基于权重共享的扩展卷积计算块,该模型可以有效地获得远程依赖,并通过一种新的权重正则化方法——正交正则化来提高泛化性能。作者在CeleA、SVHN和CIFAR-100数据库上验证了模型的有效性,并生成了具有较高视觉逼真度的样本和重建图像。
以下是神经照片编辑器效果的演示视频:
本文将从四个部分介绍这项工作:NPE,伊恩网络结构和误差函数,实验结果和代码实现。
基于内省对抗网络的神经图像编辑器
在神经照片编辑器界面,原图在中间,红蓝色块可见隐藏空,可以直接操作。
NPE的核心思想是什么?
用户选择画笔的大小和颜色,然后在输出图像上绘制。该网络不改变独立像素,而是将局部图像块与所需颜色之间的差异传播回去,然后在hidden 空之间采用梯度下降法,使它们之间的差异最小化。这一步产生的全局连贯变化在用户要求颜色变化的情况下具有语义意义。
例如,如果用户有一张肤色白、发色深、美艳锐利的人像,如果额头被涂成深色,系统会自动将头发添加到相应的区域。类似地,如果用户的图像是一个闭上嘴微笑的人,用户可以通过在嘴部区域涂上亮白色来产生笑容。
IAN可以使生成的图像更加逼真
为了使生成的网络产生生动的图像,实现高质量的重建而不丧失表现力,作者提出了IAN,它是VAE和GAN创新结合的产物。这两个目标之间有一个典型的设计折中,与隐藏空的大小有关:高维隐藏空往往学习的描述性特征较少,但可以产生更高质量的重构。
与VAE/GAN类似,作者将自动编码器的解码网络视为GAN的生成网络,但作者将编码器和鉴别器集成为单个网络,而不是训练单个鉴别器网络。IAN的中心思想是,与通过最大概率训练的编码网络学习的特征相比,通过判别训练网络学习的特征更具表现力,更适合于推测。
伊恩网络图:
作者使用GAN的鉴别器D作为推理子网的特征提取器。e是鉴别器最终卷积层上的全卷积层。利用生成网络G,推导出用于图像重建的隐藏变量值Z E = Q和用于正常随机图像生成的样本随机值Z P。
三个错误函数:
1、Limg:像素级别重构误差,作者选择了L2重建误差,因为它具有更高的平均梯度。1.Limg:像素级重建错误。作者选择L2重建误差是因为它具有较高的平均梯度。
特征:特征级重建误差,由鉴别器隐藏层空之间原始图像和重建图像之间的L2差估计。
2.Ladv:三值对抗误差,作者对其进行了改进,使鉴别器可以将样本标记为真,生成并重构。
3.IAN网络的实现:网络的基本结构与DCGAN相同,在生成器中加入了多尺度扩展卷积模块,在鉴别器中加入了最小批量样本鉴别。
数据库:CelebA和SVHN样本
实验结果:
CelebA和SVHN数据库的重建和插值结果。最外面的图像是原始图像,相邻的图像是重建图像。
如何用代码构建神经照片编辑器?
生成神经网络编辑自然照片的简单处理界面;
安装步骤:
要运行感知图像编辑器,您需要安装:
Python,最好是2.7版本。您也可以使用Python2的早期版本,但是Python3在这里不兼容
开发版
千层面,开发版
强烈建议使用CuDNN加速,但它不是依赖项
Numpy、scipy、PIL、Tkinter和tkColorChooser,这些库通常由python带来
运行NPE:
默认情况下,NPE在IAN_simple上运行。这是一个缩小的IAN网络,删除了MDC和RGB-Beta块。它不需要标签就能运行,在笔记本GPU上需要1GB内存。
在windows系统中,您需要创建一个. anorc文件,并设置标志FLOATX=float32。
如果是linux系统,可以在命令行前添加:茶诺_FLAGS=floatX=float32
没有cuDNN加速,只需要把NPE.py文件第56行的dnn=True改成dnn=False。目前作者只对IAN_simple版本设置了不使用cuDNN的选项。
运行代码:
如果您想使用不同的模型,只需在NPE.py中编辑命令“配置路径”
您可以使用任何模型来使用推理机制。
相关说明的操作:
您提取一种颜色并将其绘制在图像上,或者将其绘制在隐藏空之间的画布上
长水平滑动条用于控制隐藏层笔刷的大小,较小的水平滑动条用于控制隐藏层和主图像笔刷的大小
您可以从celebA验证集的子集中选择不同的项目,只需在底部左侧的框中输入0到999之间的数字,然后单击“推断”
使用重置键返回图像的原始值
点击“更新”,更新真实图像和对应的重建图像。单击以返回数据库中的初始真实值图像
使用样本密钥可以产生随机隐藏向量和相应的图像
使用滚轮使图像块变亮或变暗。请注意,这将自动返回样本模式,您可能需要单击“推断”而不是“重置”来返回图像编辑
如何在celebA数据集上训练IAN?
燃油必须与64x64 celebA一起使用。下载说明和准备指南可以在这里找到:https://github.com/vdumoulin/discgen.如果要训练模型,IAN.py文件包含模型设置,train_IAN.py文件包含训练代码,可以通过以下命令运行:
默认情况下,代码会将权重保存在。npz文件,其名称与config.py文件相同,并将输出一个包含每次迭代后记录的测量值的训练json日志。
使用标签—简历=真。当需要恢复训练模型时,它会从最新的历元开始自动恢复训练。
采样IAN
您可以使用以下命令生成样本并重建+栅格插值:
此操作需要安装matplotlib库。
当前项目中的三个问题
目前mad层只接受与隐藏向量大小相同的隐藏单元,会导致BAD_PARAM错误。
MADE只是一个自动回归机,不用太担心。
因为get_model的关键字比较混乱,如果想运行除IAN_simple以外的任何模型,都需要通过编辑器来解决这个问题。
AIJob是全球人工智能下面向AI开发工程师的免费求职平台。我们会尽最大努力帮助每一位ai工程师与你喜欢的企业建立联系,推荐给你喜欢的直接领导,帮你谈最好的薪资待遇。
微信咨询:aihr007简历投递:hr@top25.cn企业合作:job@top25.cn
全球人工智能现招聘5名兼职翻译:专业技术领域如图像技术、语音技术、自然语言、机器学习、数据挖掘等。工作内容及待遇请添加员工微信:C691993。
热门文章推荐
重磅|全球AI报告:看看哪些牛逼的AI公司被谷歌|苹果|脸书等十几家巨头收购了。