掌桥专利:专业的专利平台
掌桥专利
首页

使用细分缩放和深度上缩放的图像生成

文献发布时间:2023-06-19 10:52:42


使用细分缩放和深度上缩放的图像生成

背景技术

本说明书涉及使用神经网络生成图像。

神经网络是机器学习模型,其采用一层或多层非线性单元来预测针对接收到的输入的输出。一些神经网络除了输出层外还包括一个或多个隐藏层。每个隐藏层的输出用作所述网络中的下一层(即,下一个隐藏层或输出层)的输入。所述网络的每一层根据相应的参数集的当前值从所接收的输入生成输出。

发明内容

本说明书描述了一种系统,该系统被实现为在一个或多个位置的一个或多个计算机上的计算机程序,其使用生成性神经网络生成图像。

在一些实现方式中,系统实现细分缩放。特别地,系统通过将输出图像的H乘W像素网格分割成K个不相交的交错子图像来生成H xW x C x D输出图像(其中H和W分别是图像的以像素数为单位的高度和宽度;C是通道数,例如3,并且D是每个通道中的位数),其中K是小于H的整数。子图像被称为交错的是因为一个子图像内的像素通常通过另一子图像中的像素与同一子图像内的其他像素分开。例如,如果存在4个子图像,则沿着水平尺寸的每一第4个像素将在同一子图像中并且沿着垂直尺寸的每一第4个像素将在同一子图像中。系统然后使用生成性神经网络即遵循子图像的排序例如光栅扫描排序来逐子图像地生成输出图像。

在一些实现方式中,作为细分缩放的补充或替代,系统还实现深度上缩放(诸如例如由相机捕获的真实世界的图像的深度上缩放)。特别地,当生成包括N位强度值的图像时,系统首先生成具有b位强度值(其中b小于N)的初始输出图像,然后以该初始输出图像为条件生成每个强度值的剩余N-b位。为了生成初始输出图像或最终输出图像或两者,系统能够实现细分缩放。

本说明书的主题的某些新颖方面在以下权利要求中提出。

本说明书中描述的主题可以在特定实施例中实现,使得实现以下优点中的一个或多个。

常规的自回归生成性神经网络通常仅能够在它们被配置成生成的图像的大小相对较小时生成高保真度图像,甚至然后这些模型往往需要大量的存储器和计算才能生成图像。特别地,自回归地生成较大图像需要在生成图像中的强度值的至少一些时对大量上下文进行编码,并且训练生成性神经网络需要学习遍及非常大数目的变量保留细节的全局语义一致性和确切性两者的分布。另一方面,所描述的系统能够甚至在图像的大小大时也生成高保真度图像,同时保留负责由自回归生成神经网络生成的图像的高质量的图像范围空间依赖性。特别地,所描述的系统将图像生成为子图像的序列。这允许所描述的系统在子图像中保留像素的空间结构,同时紧凑地捕获图像范围空间依赖性。因此,所描述的系统仅需要将另外是生成大图像同时仍然生成高保真度图像所需要的存储器和计算的一小部分。附加地,所描述的系统能够执行深度上缩放,即,首先生成图像中的所有强度值的各位的第一子集,然后以第一子集为条件生成剩余位,以进一步增加所描述的用于生成非常高保真度的大规模图像样本的系统的容量。

存储器和处理能力要求的降低使目前构思的一些实现方式变得适合于在诸如包括被用于捕获真实世界的图像的单元(例如,相机)的移动设备的移动设备中使用,所述真实世界的图像在本文所描述的构思的一些实现方式中被用作图像生成系统的输入图像。

本说明书中描述的主题的一个或多个实施例的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,本主题的其它特征、方面和优点将变得显而易见。

附图说明

图1图示在生成图像时可以由图像生成系统采用的不同技术。

图2示出示例图像生成系统。

图3示出另一示例图像生成系统。

图4是用于使用细分缩放来生成输出图像的示例过程的流程图。

图5是用于使用深度上缩放来生成输出图像的示例过程的流程图。

在各种附图中,相同的附图标记和标记指示相同的元件。

具体实施方式

本说明书描述了一种使用生成性神经网络生成图像的图像生成系统。

如将在下面描述的,在一些实现方式中,系统无条件地生成图像,即,生成看起来好像它们是从用于训练图像生成系统的训练集绘制但是不另外以任何外部输入为条件的图像。

在一些其他实现方式中,系统以较低分辨率输入图像为条件生成高分辨率图像,即,系统执行超分辨率以生成输入图像的较高分辨率版本。

在一些其他实现方式中,作为提高输入图像的分辨率的替代或补充,系统能够通过将输入图像中的强度值转换为较高位深度(例如将输入图像从将3位强度值转换为8位强度值或者将输入图像从6位强度值转换为16位强度值)来提高输入图像的质量。通常,系统能够将输入图像从低位深度转换为较高位深度,即,其中低位深度是较高位深度的一半或不到一半。

在一些其他实现方式中,系统接收标识图像的属性的不同的调节输入(例如,本身不是图像的调节输入,并且可能不具有与输出图像的相应的部分相对应的分量),并且生成具有经标识的属性的输出图像。

图1图示能够由图像生成系统在生成输出图像时采用的不同的技术。

在图1的示例中,正由系统生成的输出图像是4x4图像,其因此包括16个像素,对于这16个像素,需要生成强度值以生成输出图像。为了生成输出图像,系统针对每个像素生成一个或多个颜色通道中的每一个的相应的强度值。当图像生成系统被配置成生成灰度图像时,每像素仅有单个颜色通道。当图像生成系统被配置成生成彩色图像时,每像素有多个颜色通道。例如,颜色通道的集合能够包括红色颜色通道、绿色颜色通道和蓝色颜色通道。作为不同的示例,颜色通道的集合包括青色颜色通道、品红颜色通道、黄色颜色通道和黑色颜色通道。当存在多个颜色通道时,根据预先确定的通道次序例如红色、绿色、然后蓝色或者蓝色、红色、然后绿色来布置多个颜色通道。

图1包括用于生成输出图像的强度值的常规技术的生成次序的图示102。

在图示102所示的生成次序中,系统以光栅扫描次序生成图像中的16个像素的强度值。在光栅扫描次序中,系统从左顶部(像素#1)开始,然后沿着图像逐行继续进行,直到到达右底部(像素#16)为止。在每个像素内,系统根据预先确定的通道次序例如首先红色、然后绿色、然后蓝色或者首先蓝色、然后红色、然后绿色来生成颜色通道的强度值。

通常,为了改进所生成的图像的质量,系统将自回归地生成每个像素的强度值,使得给定像素的给定颜色通道的强度值以已经被生成的强度值(按照生成次序在给定像素前面(即之前)的像素的强度值和已经被生成的给定像素的任何强度值(当给定颜色通道按照预先确定的次序不是第一颜色通道时))为条件。因此,左底部像素(像素#11)的强度值将以排序中的像素1至10的强度值为条件。系统能够使用生成性神经网络即通过针对需要被生成的每个值不同地调节生成性神经网络来逐个值地生成这些强度值。

然而,当图像变大时,以这种方式生成强度值需要在生成图像例如在生成次序末尾附近的像素中的强度值的至少一些时对大量上下文进行编码。也就是说,当图像中的像素的数目变大时,为在次序末尾附近的像素生成强度值需要在非常大数目的强度值即非常大的图像中的几乎所有像素的强度值上调节生成性神经网络。这使生成输出图像变得非常计算密集并且使训练生成性神经网络生成高质量图像变得非常困难,而且在至少一些情况下,在图像大小大时不可行。这是因为在这种生成方案中训练生成性神经网络需要学习遍及非常大数目的变量保留细节的全局语义一致性和确切性两者的分布。

本说明书描述了说明这些和其他问题并允许图像生成系统甚至在图像大(例如,在每个轴线中至少64个像素)时也生成高质量的图像同时减少消耗的计算资源数目的若干生成方案。

能够被采用的一种生成技术被称为细分缩放,其被示出在图示104中。

为了执行细分缩放,系统将输出图像的H乘W像素网格分割成K个不相交的交错子图像(也称为“切片”)并将这些子图像排序成子图像次序。因为K小于H,所以每个子图像包括图像中的像素的不到全部。子图像被称为交错的是因为一个子图像内的像素通常通过另一子图像中的像素与同一子图像内的其他像素分开,即,子图像内的像素在输出图像中彼此不相邻。

特别地,为了生成分割,系统接收缩放因子S并且系统通过在高度和宽度两者上每隔S个像素选择一像素来生成大小H/S×W/S的子图像,其中每个子图像相对于其他子图像具有不同的行和列偏移。这导致图像的整个空间网格被K=S^2个子图像覆盖。为了简单,在下面假定了H和W是S的倍数;如果不是,则能够以各种方式例如通过用附加像素填补图像以将H和W提高为S的倍数来解决这个。

系统然后根据子图像次序一个接一个地生成子图像。在每个子图像内,系统以子图像内的像素的光栅扫描次序自回归地生成强度值。

在图示104所示的示例中,系统已将4x4图像划分成4个2x2子图像,并且子图像次序基于每个子图像的左顶角像素在输出图像中的位置以光栅扫描次序对子图像进行排序。子图像1(根据子图像次序)包括在图示104中编号1、2、3和4的像素,子图像2包括编号5、6、7、8的像素,子图像3包括编号9、10、11和12的像素,并且子图像3包括编号13、14、15和16的像素。如能够从图示104看到的,子图像是交错的,即,其中指派给子图像1的像素1通过其他子图像中的像素与子图像1中的其他像素分开。

系统然后以子图像内已经被生成的任何子像素的强度值以及按照子图像次序中在子图像之前的任何子图像中的像素的强度值为条件,自回归地生成每个子图像中的强度值。也就是说,对于每个特定子图像中的每个特定像素的每个特定颜色通道,系统使用生成性神经网络来以以下各项的强度值为条件生成特定颜色通道的强度值:(i)在子图像的排序中在特定子图像之前的子图像中的任何像素,(ii)在特定子图像内的遍及输出图像按照光栅扫描次序在特定像素之前的任何像素,以及(iii)按照颜色通道次序在特定颜色通道之前的任何颜色通道的特定像素。附加地,特定颜色通道的强度值不以以下各项的任何强度值为条件:(i)在子图像的排序中在特定子图像之后的子图像中的任何像素,(ii)在特定子图像内的遍及输出图像按照光栅扫描次序在特定像素之后的任何像素,以及(iii)按照颜色通道次序在特定颜色通道之后的任何颜色通道的特定像素。

例如,如能够在图示104中看到的,属于子图像2的编号7像素是在遍及输出图像按照光栅扫描次序在编号7像素之前的子图像1中的4个像素和子图像2中的2个像素之后要在输出图像内生成的第7个像素。编号7像素的强度值将以已经被生成的子图像1中的像素的强度值、子图像2中的像素5和6的强度值以及编号7像素的任何颜色通道的任何强度值中的全部为条件。这些强度值将不以按照光栅扫描次序在子图像2中但在编号7像素之后的编号8像素或在(按照子图像次序在子图像2之后的)子图像3和4中的像素9-16为条件。

如将在下面更详细地描述的,细分缩放允许系统更高效地生成输出图像。特别地,细分缩放允许系统通过在子图像内保留像素的空间结构同时在调节生成性神经网络时紧凑地捕获图像范围空间依赖性来生成输出图像。因此,所描述的系统仅需要将另外是生成大图像同时仍然生成高保真度图像所需要的存储器和计算的一小部分。特别地,当生成特定子图像时,此方案能够允许系统在解码器输入上调节解码器神经网络,该解码器输入具有与子图像相同的空间尺寸并捕获图像范围空间依存关系,而不论特定子图像所位于的次序如何。因此,系统能够在比大图像的空间尺寸小得多即仅具有与大图像的子图像中的每一个相同的(小得多的)空间尺寸的解码器输入上调节解码器的同时生成大图像。

细分缩放还允许系统执行图像上缩放,其中低分辨率图像(诸如例如由相机捕获的真实世界的图像)被变换为同一场景的高分辨率图像。在图1所示的示例中,系统能够执行从2x2图像到16x16图像的上缩放。特别地,图示106示出系统通过使用所输入的较低分辨率图像用作子图像次序中的第一子图像来执行图像上缩放。也就是说,不是生成第一子图像,而是系统能够将第一子图像固定为输入图像并以已固定的第一子图像为条件生成剩余子图像。

在图示106所示的示例中,系统已接收到输入的2x2图像并将该输入的2x2图像的像素指派为第一子图像中的像素,即,像素1、2、3和4。系统然后以已固定的第一子图像为条件如上所述生成剩余像素5-16。像素5-16在图示106中有阴影,然而像素1-4没有阴影,因为阴影像素由系统生成,然而无阴影像素是基于由系统接收到的输入图像而固定的像素。

作为细分缩放的替代或补充,系统还能够使用深度上缩放技术。特别地,能够将输出图像中的任何给定像素的强度值表示为N位,即,强度值是N位值。

为了在使用深度上缩放时生成输出图像,系统首先生成初始H乘W图像,其中初始H乘W图像中的像素仅包括每个颜色通道的N位强度值的前b个最高有效位。系统能够使用细分缩放或者使用上述常规排序来生成此初始图像。系统然后根据初始H乘W图像,为输出图像中的像素中的每一个生成颜色通道的N位强度值的N-b个最低有效位。也就是说,系统首先生成图像中的强度值中的每一个的b个最高有效位,然后至少以最高有效位为条件生成图像中的强度值中的每一个的N-b个最低有效位。系统能够使用细分缩放或者使用上述常规排序来生成这些附加位。

图示108示出细分缩放和深度上缩放的组合。在图示108中,输出图像中的每个像素被划分成初始像素(具有b位颜色强度值)和附加像素(具有N-b位颜色强度值)。初始像素和附加像素一起确定输出像素的N位强度值,即,通过将初始像素的b位用作最高有效位并将N-b位用作最低有效位。

如图示108所示,系统使用上述细分缩放技术来生成初始像素1-16。系统然后使用上述细分缩放技术但是还以初始像素1-16为条件生成附加像素17-32。因此,系统首先生成具有b位强度值的初始图像,然后生成最终输出图像中的N位强度值的剩余N-b位。

细分缩放和深度上缩放的组合还能够允许系统在上缩放图像的分辨率的同时也上缩放输入的低分辨率图像的深度。在图示110所示的示例中,系统已接收到输入的2x2图像,其中所有强度值都为b位值。系统已将所输入的2x2图像的像素指派为初始像素的第一子图像中的像素,即,初始输出图像的初始像素1、2、3和4。系统然后以已固定的第一子图像为条件如上所述生成初始输出图像的剩余初始像素5-16,然后以初始输出图像为条件生成最低有效位,即附加像素17-32。像素5-32在图示110中有阴影,然而像素1-4没有阴影,因为阴影像素由系统生成,然而无阴影像素是基于由系统接收到的输入图像而固定的像素。

图2示出执行细分缩放图像生成的示例图像生成系统200。图像生成系统200是作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统的示例,其中实现了下述系统、组件和技术。

系统200以按照子图像次序在目标子图像之前的子图像为条件生成输出图像中的目标子图像222。特别地,系统200以按照子图像次序在目标子图像之前的任何子图像中的像素的强度值为条件生成目标子图像222中的强度值。

系统200包括嵌入神经网络210和解码器神经网络220。

为了生成目标子图像220,系统200使用嵌入神经网络210来处理嵌入输入202以生成编码子图像张量。

系统200然后使用解码器神经网络220以由嵌入神经网络210生成的编码子图像张量为条件自回归地生成目标子图像222中的像素的强度值。该生成被称为自回归的是因为系统200一个接一个地生成子图像内的强度值,其中被执行以生成任何特定强度值的操作取决于已经生成的强度值。

特别地,对于目标子图像222中的每个特定像素的每个特定颜色通道,系统200使用解码器神经网络220以以下各项为条件生成特定颜色通道的强度值:(i)对在子图像的排序中在目标子图像之前的子图像中的像素的强度值进行编码的编码子图像张量,(ii)在目标子图像222内的遍及输出图像按照光栅扫描次序在特定像素之前的任何像素的强度值,以及(iii)按照颜色通道次序在特定颜色通道之前的任何颜色通道的特定像素的强度值。

如上所述,嵌入神经网络210的嵌入输入202通常包括按照子图像次序在目标子图像222之前的子图像的强度值。在图2的特定示例中,目标子图像222是相对于输出图像的左顶部在输出图像中具有偏移(n,m)的子图像。因此,如果原始图像中的左顶部像素的位置由(0,0)表示,则目标子图像222中的左顶部像素是在输出图像中处于位置(n,m)的像素,按照光栅扫描次序的下一个像素是处于位置(n,m+S)的像素,并且按照光栅扫描次序在子图像中的最后像素是在输出图像中处于位置(n+H-S,m+W-S)的像素。

因此,嵌入输入202包括按照子图像次序在目标子图像222前面的子图像,即,按照输出图像的光栅扫描次序在像素(n,m)之前的偏移较小的子图像,即,具有小于n的行偏移的偏移的子图像以及具有等于n的偏移但列偏移小于m的子图像的强度值。

作为特定示例,嵌入输入202能够包括沿着深度尺寸级联的已经生成的子图像。在这些情况中的一些情况下,嵌入输入202能够包括空白填补的子图像,即,所有强度值都被设定为零或设定为另一预先确定的默认值的子图像,以保留每个已经生成的子图像相对于目标子图像的排序并且以确保嵌入输入202对每个子图像来说大小相同,即,使得深度级联输入中的子图像的总数总是相同的。

在图2中,用于生成嵌入输入202的这种方案被图示如下:子图像由矩形表示,并且虚线内的矩形以光栅扫描次序深度级联以为目标子图像222生成嵌入输入202。附加地,实线内的矩形是作为输出图像的一部分的子图像,然而在虚线内部但在实线外部的矩形是被添加到嵌入输入202以固定输入的大小并保留嵌入输入202内的相对方位的空白填补的子图像输入。另一方面,在虚线外部但在实线内的矩形是按照子图像生成次序在目标子图像222之后并因此未被包括在嵌入输入202中的子图像。

在一些情况下,嵌入输入202还能够包括在排序中指定特定子图像的方位的数据。例如,嵌入输入202能够包括目标子图像的元方位即目标子图像的偏移坐标作为跨子图像张量空间上平铺的8个单元的嵌入。

系统能够在由嵌入神经网络210和解码器220处理的输入中以各种方式表示强度值。例如,系统能够将强度值表示为浮点数。作为另一示例,系统能够将强度值表示为二进制矢量。作为另一示例,系统能够将强度值表示为单热编码矢量。作为又一个示例,系统能够将强度值表示为具有固定尺寸的预先训练或联合地学习的嵌入,例如,八维矢量或十六维矢量。

嵌入神经网络210能够具有允许神经网络处理嵌入输入202以生成编码子图像张量的任何适当的结构,该编码子图像张量概括目标子图像222的上下文以供由解码器神经网络220使用。

编码子图像张量通常是具有与输出图像的子图像相同的空间大小即H/S x W/S的特征图。也就是说,编码子图像张量包括针对目标子图像222中的每个方位的相应的编码表示,即,相应的特征矢量。

作为特定示例,嵌入神经网络210可以是具有残差块的卷积神经网络。残差块是指一系列层,包括一个或多个卷积层,这些层在块的第一层的输入与块中的最后层的输出之间具有输入连接。在一些情况下,嵌入神经网络210包括一系列自我注意力层,其后面是卷积层的多个残差块。

解码器神经网络220接收编码子图像张量并使用该编码子图像张量以光栅扫描次序自回归地生成目标子图像222中的像素的强度值。

特别地,解码器神经网络220以方位保留方式视编码子图像张量为输入,即,使得编码表示及其在目标子图像222中的对应方位之间的关联被保留。也就是说,编码子图像张量与包括目标子图像的强度值的张量在空间上对齐,使得来自先前子图像的给定强度值的编码表示位于与所对应的目标子图像中的强度值相同的空间位置处。这能够通过在自回归生成期间的每次迭代时像将在下面描述的那样从对编码子图像张量迭代时起深度级联当前目标子图像的表示来实现。

解码器神经网络220通常能够具有任何架构,该任何架构允许解码器针对子图像内的给定像素和给定颜色通道接收(i)编码子图像张量和(ii)子图像内的像素的已经生成的强度作为输入,并且生成针对给定像素的给定颜色通道定义遍及给定颜色通道的可能强度值的概率分布的输出。系统200然后能够基于概率分布例如通过从分布中采样值或者选择具有最高概率的值来选择给定颜色的强度值。

作为特定示例,解码器神经网络220能够具有混合架构,该混合架构组合掩蔽卷积和自我注意力以仅以子图像内已经生成的强度值和编码子图像张量为条件生成强度值。例如,系统能够将子图像重塑成一维张量,然后应用一维掩蔽自我注意力神经网络,该一维掩蔽自我注意力神经网络关注已经生成的强度值(然而由于掩蔽不关注任何将来的强度值)以生成关注的一维张量。系统然后能够将所关注的一维张量重塑成二维张量并且将二维张量与编码子图像张量深度级联,并且将深度级联的张量作为调节输入提供给门控卷积神经网络,该门控卷积神经网络应用掩蔽卷积以在强度值之上生成分布。一维掩蔽自我注意力神经网络的示例在Attention is All you Need,Vaswani等人,arXiv:1706.03762中进行了描述。示例门控卷积神经网络在PixelCNN Decoders,van den Oord等人,arXiv:1606.05328中进行了描述。

在训练期间,能够针对子图像中的所有像素并行执行这个,然而在训练之后并在推理期间,解码器神经网络220自回归地处理以光栅扫描次序一个接一个地生成子图像内的强度值。

如能够在以上描述中看到的,即使由嵌入神经网络和解码器神经网络处理的张量的空间尺寸被固定为较大输出图像的切片的尺寸,系统也能够生成大的高保真度图像。例如,使用32x32切片,系统能够生成128x128或256x256输出图像,同时仅需要处理具有尺寸32x32的张量。即使当要生成的输出图像的大小相当大时,这也允许系统在子图像中保留像素的空间结构,同时紧凑地捕获图像范围空间依赖性。

特别地,如以上能够看到的,嵌入神经网络210和解码器神经网络220联合地生成Hx W图像,同时仅处理具有较小空间尺寸即子图像的H/S x W/S尺寸的输入。因此,这种方案能够允许系统以捕获图像范围空间依赖性的方式调节解码器神经网络210,而不论特定子图像所位于的次序如何都无需处理具有大空间尺寸的张量。因此,系统能够在比大图像的空间尺寸小得多即具有与大图像的子图像中的每一个相同的(小得多的)空间尺寸的输入上调节嵌入网络和解码器的同时生成大图像。相对于在仍然有效地捕获图像范围依赖性的同时直接在所有先前生成的强度值上调节生成性神经网络,这能够导致存储器和处理能力的显著节约。

在一些情况下,系统200以调节输入204为条件生成输出图像。

在这些情况中的一些情况下,系统执行超分辨率以生成输入图像的较高分辨率版本。也就是说,调节输入204是较低分辨率图像。在这些情况下,系统200能够如上所述从较低分辨率图像按照子图像次序生成第一子图像,然后继续在输出图像中生成子图像的剩余部分。换句话说,第一子图像被固定为较低分辨率图像而不是由系统200生成。

在这些情况中的其他情况下,系统200接收标识图像的属性的不同的调节输入204并生成具有经标识的属性的输出图像。换句话说,调节输入204是表征输出图像的期望内容例如输出图像的期望类别标签的调节张量。在这些情况下,系统200能够在调节张量上调节嵌入神经网络210、解码器神经网络220或两者中的卷积层的激活函数。在调节张量上调节卷积层的激活函数在Conditional Image Generation with PixelCNN Decoders,van denOord等人,arXiv:1606.05328中进行了更详细的描述。

系统能够联合地训练嵌入神经网络210和解码器神经网络220以使嵌入神经网络210和解码器神经网络220生成高质量输出图像。

特别地,系统200能够通过重复地获得地面实况图像即应该由系统生成的输出图像并在使用时针对地面实况图像调节输入来训练这些神经网络。系统200然后能够从每个地面实况图像中均匀地采样子图像并且以来自地面实况图像的较早子图像(以及在使用时,调节输入)为条件使用神经网络来生成经采样的子图像。系统200然后能够确定根据由神经网络在生成经采样的子图像时生成的概率分布来测量地面实况图像中的强度值的对数似然性的损失的梯度,并且使用适当的神经网络优化器(例如,rmsProp、Adam或随机梯度下降)来利用所确定的梯度更新神经网络的参数的值。通过重复地执行这种更新,系统200生成训练后的参数值,其导致高保真度图像被生成。因为系统200仅需要为每个地面实况输出图像(而不是整个输出图像)生成相对小大小的子图像以便更新网络的参数,所以系统200能够以计算高效的方式执行此训练。

图3示出使用深度上缩放来生成输出图像的图像生成系统300。

特别地,系统300通过首先生成包括b位强度值的初始H乘W输出图像312、然后生成具有H-b位强度值的附加H乘W输出图像322使用深度上缩放来生成具有N位强度值的H乘W输出图像。通常,b是小于N的整数。例如,当N为八即输出图像为具有8位强度值的图像时,b可以为三或四。作为另一示例,当N为十六时,b可以为三或六。

系统300然后能够通过针对每个强度值将初始输出图像312中的所对应的强度值即相同像素的相同颜色通道的强度值的b位用作N位中的b个最高有效位并且将附加输出图像322中的所对应的强度值的N-b位用作N位中的N-b个最低有效位来生成包括N位强度值的最终输出图像324。

更具体地,系统300包括第一生成性神经网络310和第二生成性神经网络320。

第一生成性神经网络310被配置成任选地以调节输入302以条件生成初始输出图像312。

第二生成性神经网络320被配置成以初始输出图像312为条件并任选地还以调节输入302为条件生成附加输出图像322。

例如,当第二生成性神经网络320包括如上以图2所描述的嵌入神经网络和解码器神经网络时,能够通过修改针对附加输出图像312的每个子图像所生成的嵌入输入来在初始输出图像312上调节第二生成性神经网络320。特别地,系统300能够即使用上述细分缩放技术将初始输出图像312划分成子图像,然后例如通过将子图像与填补子图像和已经生成的子图像深度级联来将子图像添加到嵌入输入。

在一些情况下,调节输入302是较低位深度图像。也就是说,调节输入是具有b位强度值的H乘W图像。在这些情况下,系统300能够将调节图像深度上缩放为具有N位强度值的图像,即,为较高质量输出图像。为了这样做,系统绕过第一神经网络310并使用调节图像作为初始输出图像312,即,仅以调节图像为条件执行第二神经网络320的处理,然后从调节图像和附加图像322生成最终输出图像324。

在其他情况下,例如,当调节输入是较低分辨率图像或调节张量时,调节输入302能够如以上参考图2所描述的那样在调节输入302上调节输出图像的生成。

在下面参考图5更详细地描述使用深度上缩放来生成输出图像。

图4是用于使用细分缩放来生成输出图像的示例过程400的流程图。为了方便,过程400将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当地编程的图像生成系统,例如图2的图像生成系统200,能够执行过程400。

在图4的示例中,所生成的输出图像具有布置在H乘W像素网格中的多个像素,并且每个像素包括根据颜色通道次序排序的一个或多个颜色通道中的每一个的相应的强度值。因此,为了生成输出图像,系统需要为输出图像中的像素中的每一个生成强度值中的每一个。

系统获得指定以下各项的数据:(i)将H乘W像素网格分割成K个不相交的交错子图像,其中,K是小于H的整数,以及(ii)子图像的排序(步骤402)。在一些实现方式中,系统如上所述接收缩放因子并基于该缩放因子生成K个子图像。在一些其他实现方式中,系统接收标识图像中的哪些像素在哪一个子图像中的数据。

系统然后根据子图像的排序逐个子图像地生成强度值。特别地,对于每个特定子图像中的每个特定像素的每个特定颜色通道,系统使用生成性神经网络来以以下各项的强度值为条件生成特定颜色通道的强度值:(i)在子图像的排序中在特定子图像之前的子图像中的任何像素;(ii)在特定子图像内的遍及输出图像按照光栅扫描次序在特定像素之前的任何像素,以及(iii)按照颜色通道次序在特定颜色通道之前的任何颜色通道的特定像素。

在一些实现方式中,生成性神经网络包括图2的嵌入神经网络和解码器神经网络,并且系统通过从子图像次序中的第一子图像开始针对每个子图像执行步骤404和406并且依照子图像次序继续进行直到该次序中的最后子图像为止来生成输出图像。

系统使用嵌入神经网络根据针对按照生成次序在子图像之前的子图像中的像素已经生成的强度值生成子图像的编码子图像张量(步骤404)。

系统使用解码器神经网络来自回归地生成子图像中的像素的强度值(步骤406)。每个强度值是以编码子图像张量并以针对子图像中的像素已经生成的强度值为条件生成的。

图5是用于使用深度上缩放来生成输出图像的示例过程500的流程图。为了方便,过程500将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当地编程的图像生成系统,例如图2的图像生成系统200,能够执行过程500。

在图5的示例中,所生成的输出图像具有布置在H乘W像素网格中的多个像素,并且每个像素包括根据颜色通道次序排序的一个或多个颜色通道中的每一个的相应的强度值。每个强度值是N位值。因此,为了生成输出图像,系统需要生成输出图像中的像素中的每一个的强度值中的每一个的N位。

系统使用第一生成性神经网络来生成初始H乘W图像(步骤502)。初始H乘W图像中的像素的强度值仅包括颜色通道中的每一个的N位强度值中的前b个最高有效位。因为b小于N,所以强度值仅包括需要为输出图像生成的强度值的适当子集。系统能够使用以上参考图1、图2和图4描述的生成性神经网络即包括使用细分缩放来生成图像的嵌入神经网络和解码器神经网络的生成性神经网络来生成这个初始输出图像。替换地,系统能够利用使用以上在图示102中描述的常规排序方案的生成性神经网络来生成这个初始输出图像。能够以这种方式生成图像的递归生成性神经网络和卷积生成性神经网络的一些示例在PixelRNN,van den Oord等人,arXiv:1601.06759中进行了描述。卷积生成性神经网络的其他示例在Conditional Image Generation with PixelCNN Decoders,van den Oord等人,arXiv:1606.05328中进行了描述。

系统从初始H乘W图像并使用第二生成性神经网络生成输出图像中的像素中的每一个的颜色通道的N位强度值的N-b个最低有效位(步骤504)。也就是说,第二生成性神经网络生成具有N-b位强度值的H乘W图像。第二生成性神经网络以初始输出图像为条件即以强度值中的每一个的b个最高有效位为条件生成N位强度值的N-b个最低有效位。

当第二生成性神经网络包括如上用图2所描述的嵌入神经网络和解码器神经网络时,能够通过修改针对附加输出图像的每个子图像生成的嵌入输入来在初始输出图像上调节第二生成性神经网络。特别地,系统能够即使用上述细分缩放技术将初始输出图像划分成子图像,然后例如通过将子图像与填补子图像和已经生成的子图像深度级联来将子图像添加到嵌入输入。

系统通过针对图像中的每个强度值将由第一生成性神经网络生成的b位用作强度值的最高有效位并将由第二神经网络生成的N-b位用作强度值的最低有效位来生成最终输出图像(步骤506)。

如上所述,在一些情况下系统通过使用细分缩放来生成初始输出图像、附加输出图像或两者来组合深度上缩放和细分缩放。

附加地,如上所述,在一些情况下调节输入是较低分辨率的较低位深度图像。在这些情况下,系统能够通过使用细分缩放来生成初始输出图像并将初始输出图像的第一子图像固定为较低分辨率的较低位深度输入图像来生成输出图像。

本说明书结合系统和计算机程序组件使用术语“配置”。对于一个或多个要被配置为执行特定操作或动作的计算机的系统,意味着该系统已在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使所述系统执行这些操作或动作。对于要被配置为执行特定操作或动作的一个或多个计算机程序,意味着该一个或多个程序包括指令,该指令在由数据处理装置执行时使该装置执行该操作或动作。

本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件中、在计算机硬件中(包括在本说明书中公开的结构及其等同结构)、或它们中的一种或多种的组合中实施。本说明书中描述的主题的实施例可以被实施为一个或多个计算机程序,即,在有形的非暂时性存储介质上编码的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基质、随机或串行访问存储设备或它们中的一种或多种的组合。可替代地或另外地,所述程序指令可以被编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上,该传播信号被生成以对信息进行编码以传输到合适的接收器装置,以由数据处理装置来执行。

术语“数据处理装置”是指数据处理硬件,并且包括用于处理数据的各种装置、设备和机器,例如,包括可编程处理器、计算机或多个处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除硬件之外,该装置可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一种或多种的组合的代码。

可以以任何形式的编程语言(包括编译或解释语言、声明性或过程性语言)来编写计算机程序,所述计算机程序也可以被称为或描述为程序、软件、软件应用、应用(app)、模块、软件模块、脚本或代码;该计算机程序能够以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程或作为适用于在计算环境中使用的其它单元进行部署。程序可以但不必对应于文件系统中的文件。程序可以存储在用于保存其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中或存储在多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。可以部署计算机程序以在一台计算机或在位于一个站点处或分布在多个站点处并通过数据通信网络互连的多台计算机上执行。

在本说明书中,术语“数据库”被广泛地用于指代任何数据合集:该数据不需要以任何特定的方式来构造,或者根本不需要被构造,并且可以被存储在一个或多个位置的存储设备中。因此,例如,索引数据库可以包括多个数据合集,每个数据合集可以被不同地组织和访问。

类似地,在本说明书中,术语“引擎”广泛用于指代被编程以执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实施为安装在一个或多个位置的一台或多台计算机上的一个或多个软件模块或组件。在某些情况下,一台或多台计算机将专用于特定引擎;在其它情况下,可以在相同的一台或多台计算机上安装并运行多个引擎。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机来执行,该一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。所述过程和逻辑流程还可以由专用逻辑电路(例如,FPGA或ASIC)执行,或者由专用逻辑电路和一个或多个编程计算机的组合来执行。

适用于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者基于任何其它种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于行使或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储设备。所述中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地耦合到一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),以从所述一个或多个大容量存储设备接收数据或将数据传输到上述一个或多个大容量存储设备,或两者。但是,计算机不是必须具有此类设备。此外,计算机可以被嵌入到另一个设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器或便携式存储设备,例如,通用串行总线(USB)闪存驱动器,仅举几例。

适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM光盘。

为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有显示设备以及键盘和指点设备的计算机上实施,该显示设备例如是CRT(阴极射线管)或LCD(液晶显示器)监视器,用于向用户显示信息;所述键盘和指点设备例如是鼠标或轨迹球,用户可以通过所述键盘和指点设备向计算机提供输入。其它种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档以及从用户使用的设备接收文档来与用户进行交互;例如,通过响应于从网络浏览器收到的请求,将网页发送到用户设备上的网络浏览器。而且,计算机可以通过将文本消息或其它形式的消息发送到个人设备(例如,运行消息收发应用的智能手机)并且进而从用户接收响应消息来与用户交互。

用于实施机器学习模型的数据处理设备还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产(即,推断、工作负载)的公共部分和计算密集部分。

可以使用机器学习框架(例如,TensorFlow框架、Microsoft Cognitive Toolkit框架、Apache Singa框架或Apache MXNet框架)来实施和部署机器学习模型。

本说明书中描述的主题的实施例可以在计算系统中实施,所述计算系统包括后端组件(例如,作为数据服务器)、或者包括中间件组件(例如,应用服务器)、或者包括前端组件(例如,具有图形用户界面、网络浏览器或应用程序的客户端计算机,用户可通过所述图形用户界面、网络浏览器或应用程序与本说明书中描述的主题的实施方案进行交互)、或者包括一个或多个此类后端、中间件或前端组件的任意组合的。所述系统的组件可以通过数字数据通信的任何形式或媒介(例如,通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如,互联网。

所述计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系是通过在各自计算机上运行并彼此具有客户端-服务器关系的计算机程序而产生的。在一些实施例中,服务器向用户设备发送数据,例如,HTML页面,例如,用于向与充当客户端的设备进行交互的用户显示数据并从该用户接收用户输入。可以在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。

尽管本说明书包含许多特定的实施细节,但是这些细节不应被解释为对任何发明的范围或所要求保护的内容的范围的限制,而应解释为对特定于特定发明的特定实施例的特征的描述。在分开的实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分别实施,或以任何合适的子组合来实施。而且,尽管以上可以将特征描述为以某些组合起作用并且甚至最初是这样主张的,但是在一些情况下,可以从该组合中删除所要求保护的组合中的一个或多个特征,并且可以将所要求保护的组合指向子组合或子组合的变体。

类似地,尽管以特定次序在附图中描绘了操作并在权利要求中对其进行了叙述,但这不应理解为要求以所示的特定次序或以顺序次序执行这些操作,或者要求执行所有图示的操作,以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。而且,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解的是,所描述的程序组件和系统通常可以被一起集成在单个软件产品中,或封装成多个软件产品。

已经描述了主题的特定实施例。其它实施例处于所附权利要求的范围内。例如,权利要求中叙述的动作可以以不同的次序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定次序或顺序次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

相关技术
  • 使用细分缩放和深度上缩放的图像生成
  • 用于使用可缩放视频编码进行可缩放和低延迟视频会议的系统和方法
技术分类

06120112716333