开始与甘斯Image-to-Image翻译
一个图像域是一组图片类似的特征。例如,一个图像域可以是一组图像获得在特定的光照条件或与一组通用的图像噪声扭曲。
Image-to-image翻译的任务是将图像从一个域到另一个风格和特征。源域的域开始的形象。翻译后目标域所需的域。域翻译三个示例图像的应用领域包括:
应用程序 | 源领域 | 目标领域 |
---|---|---|
Day-to-dusk风格转换 | 在白天图像获得的 | 图像获得的黄昏 |
图像去噪 | 图像噪声失真 | 图像没有明显的噪音 |
超分辨率 | 低分辨率图像 | 高分辨率的图像 |
选择一个甘
您可以执行image-to-image翻译使用深度学习生成对抗网络(甘斯)。GAN由发电机网络和一个或多个鉴别器网络训练的同时最大化的整体性能。发电机网络的目的是生成逼真的图像在翻译领域,不能区别在原始图像域。鉴别器网络的目的是正确地分类原始训练数据尽可能真实和generator-synthesized图片假的。
氮化镓的类型取决于训练数据。
监督甘斯之间有一对一的映射图像源和目标域。例如,看到的从分割生成图像地图使用深度学习(计算机视觉工具箱)。在这个示例中,源域捕获的图像组成的街景。目标领域包括分类图像代表的语义分割地图。数据集提供了一个地面实况分段映射为每个输入训练图像。
无人监督的甘斯没有在源和目标之间的一对一映射图像域。例如,看到的使用单位无监督Day-to-Dusk形象翻译。在这个示例中,源和目标领域包括图像捕捉在白天、傍晚条件,分别。然而,白天的场景内容和黄昏图片不同,所以白天图像没有相应的黄昏图像具有相同场景内容。
甘创建网络
图像处理工具箱™提供功能使您能够创建甘受欢迎的网络。您可以修改网络通过改变属性,如将采样操作的数量和类型的激活和规范化。表描述了功能使您能够创建和修改GAN网络。
网络 | 创建和修改功能 |
---|---|
pix2pixHD发电机网络[1] | 一个甘pix2pixHD执行监督学习。网络由一个生成器和单一鉴别器。 创建一个pix2pixHD发电机网络使用 |
CycleGAN发电机网络[2] | CycleGAN网络进行无监督学习。网络由两个发电机和两个鉴别器。第一次发电机需要的图像域一个并生成图像域B。第一个发电机所产生的相应的鉴频器需要图像和真实图像域B,并试图正确分类的图像和假的一样真实。相反,第二个发电机需要的图像域B并生成图像域一个。第二个发电机所产生的相应的鉴频器需要图像和真实图像域一个,并试图正确分类的图像伪造的和真实的。 创建一个CycleGAN发电机网络使用 |
单位发电机网络[3] | 一个无监督image-to-image翻译(单位)GAN执行无监督学习。网络由一个发生器和两个鉴别器。发电机将图像在这两个领域,一个和B。发电机返回四个输出图片:两个翻译图像(一个- - - - - - - - -B和B- - - - - - - - -一个),和两个self-reconstructed图像(一个- - - - - - - - -一个和B- - - - - - - - -B)。第一次鉴别器需要一个真正的和生成的图像域一个并返回图像是真实的可能性。类似的,第二个鉴别器需要一个真正的和生成的图像域B并返回图像是真实的可能性。 创建一个单元发生器网络使用 |
PatchGAN鉴别器网络[4] | PatchGAN鉴别器网络可以作为鉴别器网络pix2pixHD, CycleGAN,和单位甘斯,以及自定义甘斯。 创建一个PatchGAN鉴别器网络使用 您还可以使用 |
一些网络需要额外的修改超出了网络中的可用选项创建功能。例如,您可能想添加层替换为深度连接层,或者你可能想要的初始漏ReLU层单元网络0.2以外的比例因子。甘来完善现有的网络,您可以使用深层网络设计师(深度学习工具箱)。有关更多信息,请参见构建网络与深度网络设计师(深度学习工具箱)。
如果你需要一个网络,不可以通过内置的创造功能,那么可以创建自定义甘网络从模块化的组件。首先,创建编码器和译码器模块,然后结合模块使用encoderDecoderNetwork
函数。您可以选择包括一座桥连接,跳过连接,或额外的层的网络。有关更多信息,请参见创建模块化神经网络。
火车GAN网络
训练GAN发生器和鉴别器网络,您必须使用一个自定义训练循环。有几个步骤在准备一个定制的培训循环。的一个例子显示了完整的工作流程,知道了火车生成对抗网络(甘)(深度学习工具箱)。
创建生成器和鉴别器网络。
创建一个或多个数据存储,读取、预处理,增加训练数据。有关更多信息,请参见数据存储深度学习(深度学习工具箱)。然后,创建一个
minibatchqueue
(深度学习工具箱)对象为每个数据存储管理的mini-batching观察一个定制的培训循环。定义模型梯度函数为每个网络。函数作为输入的网络和mini-batch输入数据,并返回梯度的损失。另外,您还可以通过额外的参数梯度函数(例如,如果损失函数需要额外的信息),或返回额外的参数(例如,损失值)。有关更多信息,请参见定义模型损失函数自定义训练循环(深度学习工具箱)。
定义了损失函数。某些类型的损失函数通常用于image-to-image翻译应用程序,尽管每一个损失的实现可以变化。
敌对的损失是由发电机和鉴别器常用的网络。这个损失依赖于pixelwise或patchwise区别正确的分类和预测分类鉴别器。
周期损失是由无监督机组常用的一致性。这个损失是基于图像的原则翻译从一个域到另一个,然后回到原来的领域,应与原始图像相同。
指定培训选项如解算器类型和数量的时代。有关更多信息,请参见指定培训选项自定义训练循环(深度学习工具箱)。
创建自定义训练循环,循环遍历每个时代mini-batches。循环读取每个mini-batch数据,评估模型梯度使用
dlfeval
(深度学习工具箱)函数,并更新网络参数。可选,包括显示等功能块成绩或批量生成的图像,使您能够监控训练进展。有关更多信息,请参见监测GAN培训进展并确定常见的失效模式(深度学习工具箱)。
引用
[1]
[2]
[3]
[4]
另请参阅
encoderDecoderNetwork
|blockedNetwork
|pretrainedEncoderNetwork
|cycleGANGenerator
|patchGANDiscriminator
|pix2pixHDGlobalGenerator
|unitGenerator
相关的例子
- 使用单位无监督Day-to-Dusk形象翻译
- 从分割生成图像地图使用深度学习(计算机视觉工具箱)
更多关于
- 创建模块化神经网络
- 火车生成对抗网络(甘)(深度学习工具箱)
- 自定义训练循环,损失函数和网络(深度学习工具箱)
- 定义模型损失函数自定义训练循环(深度学习工具箱)
- 指定培训选项自定义训练循环(深度学习工具箱)
- 列车网络的使用自定义训练循环(深度学习工具箱)