图像域是一组具有相似特征的图像。例如,图像域可以是在特定光照条件下获得的一组图像,或者具有一组常见的噪声畸变的图像。
图像到图像的翻译是将样式和特征从一个图像域转移到另一个图像域的任务。源域是起始图像的域。目标域是翻译后所需的域。三个示例图像域的域翻译应用包括:
应用 | 源域 | 目标领域 |
---|---|---|
天 - 黄昏风格转换 | 白天采集的图像 | 黄昏时拍摄的图像 |
图像去噪 | 带有噪声失真的图像 | 无可见噪声图像 |
超分辨率 | 低分辨率图像 | 高分辨率图像 |
您可以使用深度学习生成性对抗网络(GAN)执行图像到图像的翻译。一个GAN由一个发生器网络和一个或多个鉴别器网络组成,这些网络被同时训练以最大化整体性能。生成器网络的目标是在翻译域中生成与原始域中的图像无法区分的真实图像。鉴别器网络的目标是正确地将原始训练数据分类为真实图像,将生成的合成图像分类为假图像。
GaN的类型取决于训练数据。
监督gan在源域和目标域的图像之间有一个一对一的映射。例如,看到利用深度学习从分割地图生成图像(计算机视觉工具箱).在此示例中,源域包括捕获的街景场景的图像。目标域包括代表语义分割映射的分类图像。数据集提供了用于每个输入训练图像的地面真理分段图。
无监督的GAN在源域和目标域中的图像之间没有一对一的映射。例如,看到基于UNIT的无监督白天到黄昏图像转换.在该示例中,源和目标域分别由白天和黄昏条件中捕获的图像组成。然而,白天和黄昏图像的场景内容不同,因此日间图像没有具有相同场景内容的相应的Dusk图像。
图像处理工具箱™提供使您能够创建流行GAN网络的功能。您可以通过更改诸如下采样操作的数量和激活和归一化类型的属性来选择修改网络。该表描述了使您能够创建和修改GAN网络的功能。
网络 | 创建和修改功能 |
---|---|
pix2pixHD发生器网络[1] | Pix2pixhd GaN执行监督学习。网络由单个发电机和单个鉴别器组成。 使用创建pix2pixHD生成器网络 |
CycleGAN发电机网络[4] | CycleGAN网络执行无监督学习。该网络由两个发生器和两个鉴别器组成。第一个生成器从域中获取图像A.并在域中生成图像B。相应的鉴别器获取第一个生成器生成的图像和域中的真实图像B,并尝试正确将图像分类为真实和假的。相反,第二个发生器从域中获取图像B并在域中生成图像A.相应的鉴别器获取第二个生成器生成的图像和域中的真实图像A.,并尝试将图像正确分类为假图像和真图像。 创建CycleGAN发电机网络使用 |
单位发生器网络[4] | 无监督图像到图像转换(单元)GAN执行无监督学习。该网络由一个发生器和两个鉴别器组成。生成器在两个域中拍摄图像,A.和B. 生成器返回四个输出图像:两个翻译图像(A.- - - - - - - - -B和B- - - - - - - - -A.)和两个自我重建的图像(A.- - - - - - - - -A.和B- - - - - - - - -B).第一个鉴别器取实图像和从域生成的图像A.并返回图像为真实图像的可能性。类似地,第二个鉴别器采用来自域的真实和生成的图像B并返回图像为真实图像的可能性。 创建一个单元发电机网络使用 |
PatchGAN鉴别器网络[3] | PatchGAN识别器网络可以作为pix2pixHD、cyclclegan、UNIT gan以及自定义gan的识别器网络。 使用“创建Patchgan鉴别器网络” 您也可以使用 |
某些网络需要在网络创建功能中可用的选项之外进行额外修改。例如,您可能希望用深度连接层替换添加层,或者您可能希望单元网络的初始泄漏ReLU层具有除0.2以外的比例因子。要优化现有GAN网络,您可以使用深网络设计师(深度学习工具箱). 有关详细信息,请参阅使用Deep Network Designer构建网络(深度学习工具箱).
如果您需要通过内置创建功能无法使用的网络,则可以从模块化组件创建自定义GAN网络。首先,创建编码器和解码器模块,然后使用编码网络
功能。您可以选择在网络末端包括网桥连接、跳过连接或其他层。有关详细信息,请参阅创建模块化神经网络.
要培训GaN发生器和鉴别器网络,您必须使用自定义训练循环。准备自定义训练循环有几个步骤。有关显示完整工作流程的示例,请参阅列车生成对抗网络(GAN)(深度学习工具箱).
创建生成器和鉴别器网络。
创建一个或多个用于读取、预处理和扩充训练数据的数据存储。有关详细信息,请参阅用于深度学习的数据存储(深度学习工具箱).然后,创建一个minibatchqueue
(深度学习工具箱)对象,该对象用于管理自定义训练循环中观察值的小批量处理。
为每个网络定义模型渐变功能。该函数作为输入网络和迷你输入数据,并返回损耗的梯度。可选地,您可以将额外的参数传递给渐变函数(例如,如果损失函数需要额外信息),或返回额外的参数(例如,丢失值)。有关更多信息,请参阅为自定义训练循环定义模型渐变函数(深度学习工具箱).
定义丢失功能。某些类型的损耗函数通常用于图像到图像转换应用,尽管每个损失的实现可以不同。
发电机和鉴别器网络通常使用对抗性损失。这种损失依赖于鉴别器的正确分类和预测分类之间的像素方向或剪辑差异。
循环一致性损耗通常由无监督的发生器网络使用。这种损失基于图像从一个域转换为另一个域的图像,然后回到原始域,应与原始图像相同。
指定培训选项,例如求解器类型和时期的数量。有关更多信息,请参阅在自定义训练循环中指定训练选项(深度学习工具箱).
创建自定义训练循环,循环在每个时代的小批量。方法读取每个小批数据,计算模型梯度德尔费瓦尔
(深度学习工具箱)功能,并更新网络参数。
可选地,包括显示功能,例如生成图像的分数或批次,使您能够监视培训进度。有关更多信息,请参阅监控GAN培训进度并识别常见故障模式(深度学习工具箱).
[1]
[2]
[3]
[4]
blockedNetwork
|循环发电机
|编码网络
|斑贴歧视者
|pix2pixHDGlobalGenerator
|pretrainedEncoderNetwork
|单位发电机