基于神经网络的图像处理方法、图像处理装置与流程

文档序号:16757279发布日期:2019-01-29 17:30阅读:153来源:国知局
基于神经网络的图像处理方法、图像处理装置与流程

本公开的实施例涉及一种基于神经网络的图像处理方法、图像处理装置。



背景技术:

当前,基于人工神经网络的深度学习技术已经在诸如物体分类、文本处理、推荐引擎、图像搜索、面部识别、年龄和语音识别、人机对话以及情感计算等领域取得了巨大进展。随着人工神经网络结构的加深和算法的提升,深度学习技术在类人类数据感知领域取得了突破性的进展,深度学习技术可以用于描述图像内容、识别图像中的复杂环境下的物体以及在嘈杂环境中进行语音识别等。同时,深度学习技术还可以解决图像生成和融合的问题。



技术实现要素:

本公开至少一实施例提供一种基于神经网络的图像处理方法,包括:获取风格图像和内容图像;基于所述风格图像,利用生成神经网络对所述内容图像进行风格迁移处理,以生成输出图像。所述生成神经网络包括特征提取子网络、融合器和解码子网络,所述特征提取子网络被配置为提取所述风格图像的风格特征以生成多个风格特征图和提取所述内容图像的内容特征以生成多个内容特征图,所述融合器被配置为基于所述多个风格特征图对所述多个内容特征图执行风格转移处理,以得到多个输出特征图,所述解码子网络被配置为接收并处理所述多个输出特征图,以生成所述输出图像,所述解码子网络包括多个稠密计算模块,所述多个稠密计算模块中的第m个稠密计算模块包括n个卷积模块,所述n个卷积模块中的第i个卷积模块被配置为接收并处理所述第i个卷积模块之前的i-1个卷积模块输出的i-1个特征图组,以得到第i个特征图组,所述第m个稠密计算模块的输出包括所述n个卷积模块输出的n个特征图组,i、n、m均为整数,m大于等于1且小于等于所述多个稠密计算模块的数量,n大于等于2,且i大于等于2且小于等于n。

例如,在本公开一实施例提供的图像处理方法中,每个所述卷积模块包括卷积层和激活层。

例如,在本公开一实施例提供的图像处理方法中,所述解码子网络还包括多个反池化模块,每个所述反池化模块包括卷积层、激活层和反池化层,所述反池化层用于执行上采样操作。

例如,在本公开一实施例提供的图像处理方法中,所述特征提取子网络包括多个池化模块,所述多个池化模块与所述多个反池化模块一一对应。

例如,在本公开一实施例提供的图像处理方法中,所述解码子网络还包括输出层,所述多个稠密计算模块包括第一稠密计算模块、第二稠密计算模块和第三稠密计算模块,所述多个反池化模块包括第一反池化模块、第二反池化模块和第三反池化模块,根据所述多个输出特征图利用所述解码子网络重构并输出所述输出图像,包括:利用所述第一反池化模块处理所述多个输出特征图以得到多个第一反池化特征图;利用所述第一稠密计算模块提取所述多个第一反池化特征图的特征以得到多个第一中间解码特征图;利用所述第二反池化模块处理所述第一中间解码特征图以得到多个第二反池化特征图;利用所述第二稠密计算模块提取所述第二反池化特征图的特征以得到多个第二中间解码特征图;利用所述第三反池化模块处理所述多个第二中间解码特征图以得到多个第三反池化特征图;利用所述第三稠密计算模块提取所述第三反池化特征图的特征以得到多个第三中间解码特征图;利用所述输出层将所述多个第三中间解码特征图从特征空间转换到图像空间,以得到所述输出图像。

例如,在本公开一实施例提供的图像处理方法中,所述特征提取子网络包括第一卷积层组、第二卷积层组、第三卷积层组、第四卷积层组、第一池化层、第二池化层和第三池化层,所述第一池化层位于所述第一卷积层组和所述第二卷积层组之间,所述第二池化层位于所述第二卷积层组和所述第三卷积层组之间,所述第三池化层位于所述第三卷积层组和所述第四卷积层组之间。

例如,在本公开一实施例提供的图像处理方法中,所述第一卷积层组包括两个卷积层和两个激活层,所述第二卷积层组包括两个卷积层和两个激活层,所述第三卷积层组包括三个卷积层和三个激活层,所述第四卷积层组包括一个卷积层和一个激活层。

例如,在本公开一实施例提供的图像处理方法中,利用所述特征提取子网络提取所述风格图像的风格特征以生成多个风格特征图,包括:利用所述第一卷积层组提取所述风格图像的风格特征以产生多个第一中间风格特征图,利用所述第一池化层对所述多个第一中间风格特征图执行第一下采样操作,以得到多个第一池化风格特征图,利用所述第二卷积层组提取所述多个第一池化风格特征图的风格特征以产生多个第二中间风格特征图,利用所述第二池化层对所述多个第二中间风格特征图执行第二下采样操作以得到多个第二池化风格特征图,利用所述第三卷积层组提取所述多个第二池化风格特征图的风格特征以产生多个第三中间风格特征图,利用所述第三池化层对所述多个第三中间风格特征图执行第三下采样操作以得到多个第三池化风格特征图,利用所述第四卷积层组提取所述多个第三池化风格特征图的风格特征以产生多个第四中间风格特征图,其中,所述多个风格特征图包括所述多个第四中间风格特征图。利用所述特征提取子网络提取所述内容图像的内容特征以生成多个内容特征图,包括:利用所述第一卷积层组所提取所述内容图像的内容特征以产生多个第一中间内容特征图,利用所述第一池化层对所述多个第一中间内容特征图执行所述第一下采样操作,以得到多个第一池化内容特征图,利用所述第二卷积层组提取所述多个第一池化内容特征图的内容特征以产生多个第二中间内容特征图,利用所述第二池化层对所述多个第二中间内容特征图执行所述第二下采样操作以得到多个第二池化内容特征图,利用所述第三卷积层组提取所述多个第二池化内容特征图的内容特征以产生多个第三中间内容特征图,利用所述第三池化层对所述多个第三中间内容特征图执行所述第三下采样操作以得到多个第三池化内容特征图,利用所述第四卷积层组提取所述多个第三池化内容特征图的内容特征以产生多个第四中间内容特征图,其中,所述多个内容特征图包括所述多个第四中间内容特征图。

例如,在本公开一实施例提供的图像处理方法中,所述多个输出特征图表示为:

其中,a(x,y)表示所述多个输出特征图组成的三维矩阵,x表示所述多个内容特征图组成的三维矩阵,y表示所述多个风格特征图组成的三维矩阵,μ(x)表示所述多个内容特征图的均值组成的三维矩阵,σ(x)表示所述多个内容特征图的方差组成的三维矩阵,μ(y)表示所述多个风格特征图的均值组成的三维矩阵,σ(y)表示所述多个风格特征图的方差组成的三维矩阵。

例如,在本公开一实施例提供的图像处理方法中,在获取风格图像和内容图像之前,所述图像处理方法还包括:预先训练所述生成神经网络,其中,预先训练所述生成神经网络包括:获取训练风格图像和训练内容图像;基于所述训练风格图像,利用所述生成神经网络对所述训练内容图像执行风格迁移处理,以得到训练输出图像和多个训练输出特征图,其中,所述解码子网络用于生成并输出所述训练输出图像,所述融合器用于生成并输出所述多个训练输出特征图;利用分析神经网络分别提取所述训练输出图像的风格特征和内容特征,以生成多个第一训练风格特征图和多个训练内容特征图;利用所述分析神经网络提取所述训练风格图像的风格特征,以得到多个第二训练风格特征图;根据所述多个第一训练风格特征图、所述多个第二训练风格特征图、所述多个训练内容特征图和所述多个训练输出特征图,通过损失函数计算所述解码子网络的参数的损失值;根据所述损失值对所述解码子网络的参数进行修正,在所述损失函数满足预定条件时,得到训练好的所述生成神经网络,在所述损失函数不满足预定条件时,继续输入所述训练风格图像和所述训练内容图像以重复执行上述训练过程,其中,所述损失函数包括内容损失函数和风格损失函数,根据所述多个第一训练风格特征图、所述多个第二训练风格特征图、所述多个训练内容特征图和所述多个训练输出特征图,通过损失函数计算所述解码子网络的参数的损失值包括:根据所述多个第一训练风格特征图和所述多个第二训练风格特征图通过所述风格损失函数计算所述解码子网络的参数的风格损失值;以及根据所述多个训练内容特征图和所述多个训练输出特征图通过所述内容损失函数计算所述解码子网络的参数的内容损失值,所述损失值包括所述内容损失值和所述风格损失值。

例如,在本公开一实施例提供的图像处理方法中,所述损失函数表示为:

lt=a·lc+β·ls

其中,lc表示所述内容损失函数,ls表示所述风格损失函数,α表示所述内容损失函数的权重,β表示所述风格损失函数的权重;

所述内容损失函数lc表示为:

其中,t表示所述训练内容图像,g(t)表示所述训练输出图像,f11(g(t))表示所述多个训练内容特征图组成的三维矩阵,f2(t)表示所述多个训练输出特征图组成的三维矩阵,c1为常数,

所述风格损失函数ls表示为:

其中,s表示所述训练风格图像,f12(s)表示所述多个第二训练风格特征图组成的三维矩阵,f12(g(t))表示所述多个第一训练风格特征图组成的三维矩阵,μ(f12(g(t)))表示所述多个第一训练风格特征图的均值组成的三维矩阵,μ(f12(s))表示所述多个第二训练风格特征图的均值组成的三维矩阵,σ(f12(g(t)))表示所述多个第一训练风格特征图的方差组成的三维矩阵,σ(f12(s))表示所述多个第二训练风格特征图的方差组成的三维矩阵。

例如,在本公开一实施例提供的图像处理方法中,所述分析神经网络和所述特征提取子网络的结构和参数均相同。

本公开至少一实施例还提供一种基于神经网络的图像处理装置,包括:图像获取模块,用于获取风格图像和内容图像;其中,所述神经网络包括生成神经网络,所述生成神经网络被配置为基于所述风格图像,对所述内容图像进行风格迁移处理,以生成输出图像,其中,所述生成神经网络包括特征提取子网络、融合器和解码子网络,所述特征提取子网络被配置为提取所述风格图像的风格特征以生成多个风格特征图和提取所述内容图像的内容特征以生成多个内容特征图,所述融合器被配置为基于所述多个风格特征图对所述多个内容特征图执行风格转移处理,以得到多个输出特征图,所述解码子网络被配置为接收并处理所述多个输出特征图,以生成所述输出图像,所述解码子网络包括多个稠密计算模块,所述多个稠密计算模块中的第m个稠密计算模块包括n个卷积模块,所述n个卷积模块中的第i个卷积模块被配置为接收并处理所述第i个卷积模块之前的i-1个卷积模块输出的i-1个特征图组,以得到第i个特征图组,所述第m个稠密计算模块的输出包括所述n个卷积模块输出的n个特征图组,i、n、m均为整数,m大于等于1且小于等于所述多个稠密计算模块的数量,n大于等于2,且i大于等于2且小于等于n。

本公开至少一实施例还提供一种图像处理装置,包括:存储器,用于存储非暂时性计算机可读指令;以及处理器,用于运行所述计算机可读指令,所述计算机可读指令被所述处理器运行时可以执行根据上述任一所述的图像处理方法。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。

图1为一种卷积神经网络的示意图;

图2为本公开一实施例提供的一种基于神经网络的图像处理方法的流程图;

图3为本公开一实施例提供的一种生成神经网络的示意性框图;

图4a为一种稠密神经网络的结构模型图;

图4b为一种稠密神经网络中的稠密模块的网络结构示意图;

图5a为本公开一实施例提供的一种解码子网络的示意性框图;

图5b为本公开一实施例提供的一种解码子网络中的稠密计算模块的示意性框图;

图5c为本公开一实施例提供的一种解码子网络中的反池化模块的示意性框图;

图5d为本公开一实施例提供的一种解码子网络中的输出层的示意性框图;

图6为本公开一实施例提供的一种生成神经网络的网络结构示意图;

图7为本公开一实施例提供的一种池化操作和反池化操作的示意图;

图8为本公开一实施例提供的一种训练生成神经网络的示意性流程图;

图9为本公开一实施例提供的一种在训练生成神经网络的过程中的训练模块的示意性框图;

图10为本公开一实施例提供的一种图像处理装置的示例性框图;

图11为本公开一实施例提供的另一种图像处理装置的示意性框图。

具体实施方式

为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

为了保持本公开实施例的以下说明清楚且简明,本公开省略了已知功能和已知部件的详细说明。

当今,随着图像处理技术的发展,利用深度神经网络对图像进行风格化迁移处理的方法逐渐成为图像处理领域的研究热点。将一副图像转换成具备某种艺术风格的图片,可以用于基于云计算的图像处理、风格渲染以及数字画廊等产品和服务。例如,基于参考图像所给出的风格(style),对输入图像进行处理以获得至少部分体现出该风格的输出图像。例如,参考图像为某个艺术家的作品,输出图像则可以在保留原有内容的同时还呈现出该艺术家作画的某些风格特征。

本公开至少一实施例提供一种基于神经网络的图像处理方法、图像处理装置,该图像处理方法可以进行任意风格的转换,将两幅输入图像融合为一幅输出图像,输出图像包含了其中一幅输入图像的内容和另一幅输入图像的风格,能够缩减神经网络的模型,利用更少的模型参数得到相同质量的输出图像,减少训练参数,提高处理速度,降低运算时间,具有更好、更广泛的应用前景。

卷积神经网络(convolutionalneuralnetwork,cnn)可以用于图像识别、人脸识别、文字识别、动物分类、图像处理等领域。图1为一种卷积神经网络的示意图。例如,该卷积神经网络可以用于图像处理,其使用图像作为输入和输出,并通过卷积核替代标量的权重。图1中仅示出了具有3层结构的卷积神经网络。如图1所示,卷积神经网络包括输入层601、隐藏层602和输出层603。输入层601具有4个输入621,隐藏层602具有3个输出622,输出层603具有2个输出623,最终该卷积神经网络可以输出2幅图像。

例如,输入层601的4个输入621可以为4幅图像,或者1幅图像的四种特征。隐藏层602的3个输出622可以为经由输入层601输入的图像或特征(例如,4个输入621)的特征图。

例如,如图1所示,隐藏层602可以包括第一卷积层611和第二卷积层612。卷积层(例如,第一卷积层611和第二卷积层612)具有权重和偏置权重表示卷积核,偏置是叠加到卷积层的输出的标量,其中,k是表示输入层601的标签,i和j分别是输入层601的输入的标签和隐藏层602的输出的标签,k,i,j均为正整数。例如,第一卷积层611包括第一组卷积核(图1中的)和第一组偏置(图1中的)。第二卷积层612包括第二组卷积核(图1中的)和第二组偏置(图1中的)。通常,每个卷积层包括数十个或数百个卷积核,若卷积神经网络为深度卷积神经网络,则隐藏层602可以包括至少五层卷积层。

例如,如图1所示,该隐藏层602还包括第一激活层613和第二激活层614。第一激活层613位于第一卷积层611之后,第二激活层614位于第二卷积层612之后。激活层(例如,第一激活层613和第二激活层614)包括激活函数,激活函数用于给卷积神经网络引入非线性因素,以使卷积神经网络可以更好地解决较为复杂的问题。激活函数可以包括线性修正单元(relu)函数、s型函数(sigmoid函数)或双曲正切函数(tanh函数)等。例如,激活层可以单独作为卷积神经网络的一层,或者激活层也可以被包含在卷积层(例如,第一卷积层611可以包括第一激活层613,第二卷积层612可以包括第二激活层614)中。

例如,在第一卷积层611中,首先,对每个输入621应用第一组卷积核中的若干卷积核和第一组偏置中的若干偏置以得到第一卷积层611的输出;然后,第一卷积层611的输出可以通过第一激活层613进行处理,以得到第一激活层613的输出。在第二卷积层612中,首先,对输入的第一激活层613的输出应用第二组卷积核中的若干卷积核和第二组偏置中的若干偏置以得到第二卷积层612的输出;然后,第二卷积层612的输出可以通过第二激活层614进行处理,以得到第二激活层614的输出。例如,第一卷积层611的输出可以为对其输入应用卷积核后再与偏置相加的结果,第二卷积层612的输出可以为对第一激活层613的输出应用卷积核后再与偏置相加的结果。例如,如图1所示,第一激活层613的输出即为隐藏层602的输出622,第二激活层614的输出被传输至输出层603以作为输出层603的输出623。

例如,卷积层是卷积神经网络的核心层。在卷积神经网络的卷积层中,一个神经元只与部分相邻层的神经元连接。卷积层可以对输入图像应用若干个卷积核,以提取输入图像的多种类型的特征。每个卷积核可以提取一种类型的特征。卷积核一般以随机小数矩阵的形式初始化,在卷积神经网络的训练过程中,卷积核将通过学习以得到合理的权值。对输入图像应用一个卷积核之后得到的结果被称为特征图(featuremap),特征图的数量与卷积核的数量相等。每个特征图由一些矩形排列的神经元组成,同一特征图的神经元共享权值,这里共享的权值就是卷积核。一个层级的卷积层输出的特征图可以被输入到相邻的下一个层级的卷积层并再次处理以得到新的特征图。

例如,池化层设置在相邻的卷积层之间,池化层是下采样的一种形式。一方面,池化层可以用于缩减输入图像的规模,简化计算的复杂度,在一定程度上减小过拟合的现象;另一方面,池化层也可以进行特征压缩,提取输入图像的主要特征。池化层能够减少特征图的尺寸,但不改变特征图的数量。例如,一个尺寸为12×12的输入图像,通过6×6的滤波器对其进行采样,那么可以得到2×2的输出图像,这意味着输入图像上的36个像素合并为输出图像中的1个像素。

图2为本公开一实施例提供的一种基于神经网络的图像处理方法的流程图,图3为本公开一实施例提供的一种生成神经网络的示意性框图。

例如,如图2所示,本公开实施例提供的基于神经网络的图像处理方法包括以下步骤:

s10:获取风格图像和内容图像;

s20:基于风格图像,利用生成神经网络对内容图像进行风格迁移处理,以生成输出图像。

例如,在步骤s10中,内容图像可以为各种类型的图像,例如,内容图像可以为通过数码相机或手机等图像采集设备拍摄的图像,其可以为人物图像、动植物图像或风景图像等。风格图像可以为各种艺术大师(例如莫奈、梵高、毕加索等)的名画等,但不限于此,风格图像还可以为水墨画、素描画等。

例如,在步骤s20中,生成神经网络可以为卷积神经网络,输出图像为经过生成网络处理之后的图像,输出图像可以包括内容图像的内容特征和风格图像的风格特征。

例如,如图3所示,生成神经网络100包括特征提取子网络101、融合器102和解码子网络103。特征提取子网络101被配置为提取风格图像的风格特征以生成多个风格特征图和提取内容图像的内容特征以生成多个内容特征图;融合器102被配置为基于多个风格特征图对多个内容特征图执行风格转移处理,以得到多个输出特征图;解码子网络103被配置为接收并处理多个输出特征图,以生成输出图像。也就是说,步骤s20可以包括以下步骤:

s201:利用特征提取子网络提取风格图像的风格特征以生成多个风格特征图和提取内容图像的内容特征以生成多个内容特征图,

s202:基于多个风格特征图利用融合器对多个内容特征图执行风格转移处理,以得到多个输出特征图,

s203:根据多个输出特征图利用解码子网络重构并输出输出图像。

需要说明的是,在本公开中,特征图(内容特征图、风格特征图、输出特征图等)表示一个二维矩阵,例如,在步骤s201中,每个风格特征图表示一个二维矩阵,多个风格特征图组成一个三维矩阵;每个内容特征图表示一个二维矩阵,多个内容特征图组成一个三维矩阵。在步骤s202中,每个输出特征图表示一个二维矩阵,多个输出特征图组成一个三维矩阵。

例如,稠密神经网络(denseconvolutionalnetwork,densenet)具有以下优点:第一,大幅度减少参数,例如,当稠密神经网络达到与残差神经网络(resnet)相当的精度时,稠密神经网络的参数量还不到残差神经网络的一半;第二,降低计算量,例如,当稠密神经网络达到与残差神经网络相当的精度时,稠密神经网络的计算量为残差神经网络的一半左右;第三,能够有效地解决梯度消失问题;第四,支持特征重用,强化特征传播;第五,具有非常好的抗过拟合性能,尤其是在训练数据量匮乏时,抗过拟合性能较好。因为稠密神经网络在参数、计算量以及训练过程等方面的优势,在本公开中,生成神经网络中的解码子网络103可以采用改进的稠密神经网络实现,以达到实现任意风格迁移的要求。

图4a为一种稠密神经网络的结构模型图,图4b为一种稠密神经网络中的稠密模块的网络结构示意图。下面结合附图4a和4b简单地介绍稠密神经网络。

例如,稠密神经网络可以应用于图像分类领域。对于普通的神经网络,第n层的输出为第n+1层的输入,若一种神经网络有l层,则该神经网络一共包括l个连接,其中,n、l均为正整数,且n大于1且小于l。而稠密神经网络采用稠密连接,即稠密神经网络中的每一层的输入包括来自该层之前的所有层的输出,若稠密神经网络有l层,则其有l(l+1)/2个连接。稠密神经网络通过串联的方式结合,在稠密神经网络中,第l层输出的特征图xl表示为:xl=hl([x0,x1,..,xl-1]),其中,hl(.)可以表示特征提取操作,且hl(.)是三个子操作的组合,三个子操作包括批标准化(batchnormalization,bn)子操作、激活(relu)子操作和卷积子操作(例如,卷积操作中采用3x3卷积核),x0表示输入图像,x1,…,xl-1分别表示第一层至第l-1层输出的特征图,且x0,x1,…,xl-1的大小一致。

例如,稠密神经网络包括多个稠密模块(denseblock)和间插于相邻稠密模块之间的多个传输层(transitionlayers)。例如,每个稠密模块可以采用多个卷积核(例如,多个3×3卷积核)对特征图执行卷积操作,以提取特征。如图4a所示,多个稠密模块可以包括第一稠密模块51、第二稠密模块52和第三稠密模块53。例如,如图4b所示,以第一稠密模块51为例对稠密模块进行详细描述,第一稠密模块51包括第一卷积计算模块510、第二卷积计算模块511、第三卷积计算模块512和第四卷积计算模块513。在对输入图像x0进行处理的过程中,首先,通过第一卷积计算模块510对输入图像x0执行第一特征提取操作h1,以得到多个第一特征图x1;然后,通过第二卷积计算模块511对输入图像x0和多个第一特征图x1执行第二特征提取操作h2,以得到多个第二特征图x2;然后,通过第三卷积计算模块512对输入图像x0、多个第一特征图x1和多个第二特征图x2执行第三特征提取操作h3,以得到多个第三特征图x3;然后,通过第四卷积计算模块513对输入图像x0、多个第一特征图x1、多个第二特征图x2和多个第三特征图x3执行第四特征提取操作h4,以得到多个第四特征图x4;最后,输入图像x0、多个第一特征图x1、多个第二特征图x2、多个第三特征图x3和多个第四特征图x4均被传输至传输层,以进行后续操作。

例如,每个稠密模块还可以包括1×1卷积核,从而在每次特征提取操作中,还可以采用1×1卷积核进行降维,减少特征图的数量,降低计算量。

需要说明的是,在每个稠密模块中,各个卷积计算模块输出的特征图的数量都相同,例如,其为kt。kt表示增长率(growthrate),用于控制该稠密神经网络的特征图的数量。在稠密神经网络中,增长率较小,例如,增长率kt可以为32等。

例如,传输层用于减少输入的特征图的数量,降低特征图的维度,从而压缩参数、减少计算量;传输层用还用于融合各个通道的特征。每个传输层可以包括用于以执行卷积操作的卷积层(例如,其包括1×1卷积核)和用于以执行下采样操作的池化层(例如,平均池化)。例如,在传输层中,每个卷积层输出的特征图的数量为其输入的特征图的数量的一半。如图4a所示,多个传输层可以包括第一传输层61和第三传输层62。

图5a为本公开一实施例提供的一种解码子网络的示意性框图。

例如,解码子网络103可以包括多个稠密计算模块(例如,图5a所示的第一稠密计算模块db1、第二稠密计算模块db2和第三稠密计算模块db3),多个稠密计算模块中的第m个稠密计算模块包括n个卷积模块,n个卷积模块中的第i个卷积模块被配置为接收并处理第i个卷积模块之前的i-1个卷积模块输出的i-1个特征图组,以得到第i个特征图组,第m个稠密计算模块的输出包括n个卷积模块输出的n个特征图组,i、n、m均为整数,m大于等于1且小于等于多个稠密计算模块的数量,n大于等于2,且i大于等于2且小于等于n。例如,在一些示例中,解码子网络103包括m0个稠密计算模块,则1≤m≤m0,m0为正整数且大于等于2。

例如,第m个稠密计算模块的输出还包括输入至第m个稠密计算模块的特征图。

值得注意的是:第一,由于稠密神经网络的输入的格式是图片格式,而在生成神经网络中,解码子网络103用于接收融合器102输出的特征图(例如,多个输出特征图),并对特征图进行处理。即解码子网络103的输入的格式为特征图(即,图片的特征),而不是图片,因此,稠密神经网络结构被修改以适应特征图的输入形式。第二,在稠密神经网络中,每个稠密模块用于执行批标准化子操作、激活子操作和卷积子操作(即,bn-relu-conv(3x3),批标准归一化层(即,bn)用于对特征进行归一化,以提升训练速度并改善生成图片质量,批标准归一化层具有非常重要的意义。由于实例归一化层(in)/批标准归一化层(bn)都是针对单个风格,即神经网络中in/bn层用于提取单一风格的风格特征具有重要的作用。但是对于提取多种风格、任意风格的风格特征,in/bn层不仅没有优化作用,反而会影响整个网络的训练。在本公开中,生成神经网络可以实现任意风格迁移,由此,生成神经网络不能使用归一化层,本公开使用的解码子网络需要去掉稠密神经网络中的批标准归一化层,解码子网络中的每个稠密计算模块用于执行激活子操作和卷积子操作(即,relu-conv(3x3))。第三,在经典的稠密神经网络中,每个稠密模块后设置有传输层,传输层中包括一个池化层。而在本公开的实施例中,解码子网络需要与特征提取子网络在结构上对应,特征提取子网络(在下面将会描述)包括多个池化层,为了保证网络结构的对应性,解码子网络需要相应设置反池化层,因此,本公开使用的解码子网络需要将稠密神经网络中的池化层更换为反池化层,同时,改变反池化层与稠密计算模块的位置关系。在解码子网络中,每个反池化层后设置一个稠密计算模块。

图5b为本公开一实施例提供的一种稠密计算模块的示意性框图。

例如,每个卷积模块包括卷积层和激活层。如图5b所示,在一些示例中,以第m个稠密计算模块为例,例如,m可以为1,在第m个稠密计算模块中,n可以为2,即第m个稠密计算模块可以包括两个卷积模块,两个卷积模块分别为第一卷积模块21a和第二卷积模块21b。第一卷积模块21a包括卷积层201和激活层202,第二卷积模块21b包括卷积层203和激活层204。卷积层201和卷积层203用于执行卷积操作,卷积层201可以包括多个第一卷积核(例如,第一卷积核可以包括3×3卷积核),以提取输入到该卷积层201的特征图的多种类型的特征;卷积层203也可以包括多个第一卷积核,以提取输入到该卷积层203的特征图的多种类型的特征。例如,各个卷积模块中的卷积层中的第一卷积核的数量可以相同,从而保证各个卷积模块输出的特征图组中的特征图的数量相同。例如,在一个示例中,第一卷积模块21a中的卷积层201包括12个第一卷积核,则第二卷积模块21b中的卷积层203也包括12个第一卷积核。但本公开不限于此,不同卷积模块中的卷积层中的第一卷积核的数量也可以不相同。

例如,在解码子网络103中,不同卷积模块中的卷积层和激活层可以不相同,例如,卷积层201和卷积层203不相同,激活层202和激活层204不相同。但不限于此,在解码子网络103中,至少部分卷积模块中的卷积层和激活层也可以相同。此处,各个卷积层相同表示各个卷积层中的第一卷积核的数量和参数均相同。

需要说明的是,在一些示例中,卷积层201可以仅包括多个3×3卷积核;而在另一些示例中,卷积层201可以包括多个3×3卷积核和多个1×1卷积核。同理,卷积层203可以仅包括多个3×3卷积核;或者也可以包括多个3×3卷积核和多个1×1卷积核。

例如,激活层202用于对卷积层201的输出(即,特征图)执行激活操作,激活层204用于对卷积层203的输出(即,特征图)执行激活操作,激活层202和激活层204均可以包括激活函数,激活函数用于给解码子网络103引入非线性因素。例如,激活函数可以包括线性修正单元(relu)函数。relu函数为非饱和非线性函数,例如包括leaky-relu函数、p-relu函数、r-relu函数等。例如,激活层202中的激活函数和激活层204中的激活函数可以相同也可以不相同。

需要说明的是,第m个稠密计算模块也可以包括三个卷积模块或四个卷积模块等,本公开对此不作具体限制。多个稠密计算模块中的卷积模块的数量可以相同,也可以不相同。如图5a所示,第一稠密计算模块db1可以包括两个卷积模块,而第二稠密计算模块db2可以包括四个卷积模块,第三稠密计算模块db3可以包括三个卷积模块。本公开对每个稠密计算模块中的卷积模块的数量不作具体限制。

图5c为本公开一实施例提供的一种解码子网络中的反池化模块的示意性框图。

例如,解码子网络103还包括多个反池化模块(例如,图5a所示第一反池化模块t1、第二反池化模块t2和第三反池化模块t3)。每个反池化模块包括卷积层、激活层和反池化层。例如,在一些示例中,如图5c所示,以第一反池化模块t1为例,第一反池化模块t1包括卷积层211、激活层212和反池化层213。

需要说明的是,卷积模块中的多个卷积层和反池化模块中的多个卷积层可以各不相同,也可以至少部分相同;类似地,卷积模块中的多个激活层和反池化模块中的多个激活层可以各不相同,也可以至少部分相同。

例如,卷积层211用于执行卷积操作,卷积层211可以包括多个第二卷积核(例如,第二卷积核可以包括1×1卷积核),卷积层211用于减少其输出的特征图的数量,降低特征图的维度。例如,第二反池化模块t2中的卷积层的第二卷积核的数量和第三反池化模块t3中的卷积层的第二卷积核的数量可以相同,而第一反池化模块t1中的卷积层的第二卷积核的数量可以与第二反池化模块t2中的卷积层的第二卷积核的数量不相同。例如,在一些示例中,第二反池化模块t2中的卷积层可以包括12个第二卷积核,第三反池化模块t3中的卷积层也可以包括12个第二卷积核,而第一反池化模块t1中的卷积层可以包括64个第二卷积核。

例如,激活层212用于对卷积层211的输出执行激活操作,激活层212也可以包括relu函数。

例如,反池化层213用于对激活层212的输出执行上采样操作。反池化层213可以增加被输入至该反池化层213的特征图的数据量。解码子网络103通过反池化层213实现上采样,从而可以减少上采样的计算量,提高生成神经网络的计算速度,减少显存占用量。

值得注意的是,第一反池化模块t1中的上采样操作、第二反池化模块t2中的上采样操作和第三反池化模块t3中的上采样操作可以相同,也可以至少部分不相同,对此不作限制。

例如,在一些示例中,反池化层213可以采用最大值合并(max-pooling)方法实现上采样操作,且上采样因子为2×2矩阵。又例如,反池化层213还可以采用跨度转置卷积(stridestransposedconvolution)、插值(例如,内插值、两次立方插值等)等算法实现上采样操作。

需要说明的是,在本公开实施例的解码子网络中,稠密计算模块与上述稠密神经网络中的稠密模块对应,两者之间的不同之处在于:本公开实施例的解码子网络中的稠密计算模块中不包括归一化层,稠密神经网络中的稠密模块包括批标准归一化层。反池化模块与上述稠密神经网络中的传输层对应,两者之间的不同之处在于:本公开实施例的解码子网络中的反池化模块用于执行上采样操作,而稠密神经网络中的传输层用于执行下采样操作。

图5d为本公开一实施例提供的一种解码子网络中的输出层的示意性框图。例如,如图5a所示,解码子网络103还包括输出层op。如图5d所示,输出层op可以包括卷积层221。输出层op用于将第三稠密计算模块db3输出的特征图从特征空间转换到图像空间,以得到输出图像。

例如,如图5a所示,在一些示例中,多个稠密计算模块可以包括第一稠密计算模块db1、第二稠密计算模块db2和第三稠密计算模块db3。多个反池化模块包括第一反池化模块t1、第二反池化模块t2和第三反池化模块t3,且第一反池化模块t1设置在第一稠密计算模块db1之前,即第一反池化模块t1的输出被传输至第一稠密计算模块db1,以作为第一稠密计算模块db1的输入。第二反池化模块t2设置在第一稠密计算模块db1和第二稠密计算模块db2之间。第三反池化模块t3设置在第二稠密计算模块db2和第三稠密计算模块db3之间。

图6为本公开一实施例提供的一种生成神经网络的网络结构示意图。

例如,在一个示例中,具体地,步骤s203可以包括以下操作:

s2031:利用第一反池化模块处理多个输出特征图以得到多个第一反池化特征图;

s2032:利用第一稠密计算模块提取多个第一反池化特征图的特征以得到多个第一中间解码特征图;

s2033:利用第二反池化模块处理第一中间解码特征图以得到多个第二反池化特征图;

s2034:利用第二稠密计算模块提取第二反池化特征图的特征以得到多个第二中间解码特征图;

s2035:利用第三反池化模块处理多个第二中间解码特征图以得到多个第三反池化特征图;

s2036:利用第三稠密计算模块提取第三反池化特征图的特征以得到多个第三中间解码特征图;

s2037:利用输出层将多个第三中间解码特征图从特征空间转换到图像空间,以得到输出图像。

例如,多个输出特征图f1的数量可以为512,且多个输出特征图f1的尺寸相同,均为28×28。如图5c和图6所示,在步骤s2031中,第一反池化模块t1用于对多个输出特征图f1依次执行卷积操作、激活操作和上采样操作,以得到多个第一反池化特征图p1。多个第一反池化特征图p1的数量可以为64,多个第一反池化特征图p1的尺寸相同,例如均为56×56。

例如,如图5b和图6所示,在步骤s2032中,第一稠密计算模块db1可以包括第一卷积模块21a和第二卷积模块21b。第一稠密计算模块db1中的第一卷积模块21a用于对多个第一反池化特征图p1依次执行卷积操作和激活操作,以得到多个特征图m11;第一稠密计算模块db1中的第二卷积模块21b用于对多个第一反池化特征图p1和多个特征图m11依次执行卷积操作和激活操作,以得到多个特征图m12。多个第一中间解码特征图m1包括多个第一反池化特征图p1、多个特征图m11和多个特征图m12。多个特征图m11的数量可以为12,多个特征图m12的数量也可以为12,从而多个第一中间解码特征图m1的数量可以为88(即,64+12+12)。多个第一中间解码特征图m1的尺寸相同,例如均为56×56。

例如,如图6所示,在步骤s2033中,第二反池化模块t2用于对多个第一中间解码特征图m1依次执行卷积操作、激活操作和上采样操作,以得到多个第二反池化特征图p2。多个第二反池化特征图p2的数量可以为44,多个第二反池化特征图p2的尺寸相同,例如均为112×112。

例如,如图6所示,在步骤s2034中,第二稠密计算模块db2可以包括第一卷积模块21c和第二卷积模块21d。第二稠密计算模块db2中的第一卷积模块21c用于对多个第二反池化特征图p2依次执行卷积操作和激活操作,以得到多个特征图m21;第二稠密计算模块db2中的第二卷积模块21d用于对多个第二反池化特征图p2和多个特征图m21依次执行卷积操作和激活操作,以得到多个特征图m22。多个第二中间解码特征图m2包括多个第二反池化特征图p2、多个特征图m21和多个特征图m22。多个特征图m21的数量可以为12,多个特征图m22的数量也可以为12,从而多个第二中间解码特征图m2的数量可以为68(即,44+12+12)。多个第二中间解码特征图m2的尺寸相同,例如均为112×112。

例如,如图6所示,在步骤s2035中,第三反池化模块t3用于对多个第二中间解码特征图m2依次执行卷积操作、激活操作和上采样操作,以得到多个第三反池化特征图p3。多个第三反池化特征图p3的数量可以为34,多个第三反池化特征图p3的尺寸相同,例如均为224×224。

例如,如图6所示,在步骤s2036中,第三稠密计算模块db3可以包括第一卷积模块21e和第二卷积模块21f。第三稠密计算模块db3中的第一卷积模块21e用于对多个第三反池化特征图p3依次执行卷积操作和激活操作,以得到多个特征图m31;第三稠密计算模块db3中的第二卷积模块21f用于对多个第三反池化特征图p3和多个特征图m31依次执行卷积操作和激活操作,以得到多个特征图m32。多个第三中间解码特征图m3包括多个第三反池化特征图p3、多个特征图m31和多个特征图m32。多个特征图m31的数量可以为12,多个特征图m32的数量也可以为12,从而多个第三中间解码特征图m3的数量可以为58(即,34+12+12)。多个第三中间解码特征图m3的尺寸相同,例如均为224×224。

例如,如图6所示,在步骤s2037中,输出层op用于将多个第三中间解码特征图m3从特征空间转换到图像空间,以得到输出图像f2。输出图像f2包括r、g、b三个颜色通道,输出图像f2的尺寸可以为224×224。

需要说明的是,在本公开中,各卷积层(特征提取子网络中的各卷积层和解码子网络中的各卷积层)中的卷积核的参数(即卷积核中各个元素的值)可以各不相同,也可以至少部分相同。各卷积层中的卷积核可以根据实际应用进行设置,本公开对此不作具体限制。

例如,特征提取子网络101可以包括多个池化模块,多个池化模块与解码子网络103中的多个反池化模块一一对应。例如,如图6所示,在一个示例中,特征提取子网络101包括第一池化模块、第二池化模块和第三池化模块,第一池化模块包括第一池化层pl1,第二池化模块包括第二池化层pl2,第三池化模块包括第三池化层pl3。第一池化模块与第三反池化模块t3对应,第二池化模块与第二反池化模块t2对应,第三池化模块与第一反池化模块t1对应。

例如,如图6所示,特征提取子网络101还可以包括第一卷积层组cp1、第二卷积层组cp2、第三卷积层cp3和第四卷积层组cp4,第一池化层pl1位于第一卷积层组cp1和第二卷积层组cp2之间,第二池化层pl2位于第二卷积层组cp2和第三卷积层cp3之间,第三池化层pl3位于第三卷积层cp3和第四卷积层组cp4之间。

例如,在一些示例中,特征提取子网络101可以采用已经训练好的vgg16网络中的前8层。多个风格特征图可以包括vgg16网络中第relu4_1层输出的特征图;多个内容特征图也可以包括vgg16网络中的第relu4_1层输出的特征图。不同之处在于,多个风格特征图是利用特征提取子网络101对风格图像进行处理后得到的特征图,多个内容特征图是利用特征提取子网络101对内容图像进行处理后得到的特征图。但不限于此,特征提取子网络101也可以采用已经训练好的vgg19网络中的前14层,多个风格特征图包括vgg19网络中第relu5_2层输出的特征图;多个内容特征图包括vgg19网络中的第relu5_2层输出的特征图。例如,vgg16又被称为oxfordnet,是由牛津视觉几何组(visualgeometrygroup)开发的卷积神经网络结构,其包括16个卷积层。类似地,vgg19网络包括19个卷积层。

需要说明的是,vgg16网络可以包括第一组卷积层(包括两个卷积层和两个激活层,每个卷积层包括64个3×3卷积核)、第一池化层、第二组卷积层(包括两个卷积层和两个激活层,每个卷积层包括128个3×3卷积核)、第二池化层、第三组卷积层(包括三个卷积层和三个激活层,每个卷积层包括256个3×3卷积核)、第三池化层、第四组卷积层(包括三个卷积层和三个激活层,每个卷积层包括512个3×3卷积核)、第四池化层和全连接层等。vgg16网络中第relu4_1层表示第四组卷积层中的第一个激活层。

例如,特征提取子网络101中的各个卷积层组(例如,第一卷积层组cp1、第二卷积层组cp2、第三卷积层cp3和第四卷积层组cp4)被配置为提取风格图像的风格特征,风格特征表示在生成神经网络的不同层中不同特征图像之间的关系,风格特征可以包括图像的纹理信息、颜色信息等。纹理信息例如表示特征图像之间的相关性,其与位置无关。特征提取子网络101中的各个卷积层组(例如,第一卷积层组cp1、第二卷积层组cp2、第三卷积层cp3和第四卷积层组cp4)还被配置为提取内容图像的内容特征,内容特征表示图像中的物体在整幅图像的分布,例如,内容特征包括内容图像的内容信息。

例如,在特征提取子网络101中,每个池化层被配置为对相应的卷积层组的输出执行下采样操作,例如,第一池化层pl1被配置为对第一卷积层组cp1的输出执行下采样操作。池化层用于减小特征图的数据量,即特征图的尺寸下降,但是特征图的数量保持不变。池化层可以采用各种下采样方法对特征图进行采样。下采样方法包括但不限于:最大值合并、平均值合并、随机合并、欠采样(decimation,例如选择固定的像素)、解复用输出(demuxout,将输入图像拆分为多个更小的图像)等。

例如,在本公开中,“多个池化模块与多个反池化模块一一对应”表示多个池化模块中的池化层的上采样因子与多个反池化模块中的反池化层的下采样因子对应。例如,如图6所示,第一池化层pl1与第三反池化模块t3中的反池化层对应,也就是说,若第一池化层pl1的上采样因子为q,即第一池化层pl1用于将其获取的特征图的数据量缩小q倍,则第三反池化模块t3中的反池化层的下采样因子为1/q,即第三反池化模块t3中的反池化层用于将其获取的特征图的数据量增大q倍。类似地,第二池化层pl2与第二反池化模块t2中的反池化层对应,第三池化层pl3与第一反池化模块t1中的反池化层对应。

需要说明的是,多个池化层的数量和多个反池化层的数量也可以不相同,只要能使输入图像和经过生成神经网络100处理后的输出图像的尺寸相同即可。

下面结合图7简单描述池化操作和对应的反池化操作。

例如,图7中左边表示池化操作,图7中右边表示反池化操作。池化操作包括下采样的过程;与池化操作相反,反池化操作则包括上采样的过程。当反池化层执行反池化操作时,反池化层需要获取对应的池化层执行池化操作时的参数(例如,最大值的坐标等)。例如,如图7所示,在池化操作中,假设第一输入特征图701的尺寸是3×3,第一输入特征图701中最大值所在位置的坐标为(0,1),且该最大值为8。池化操作采用最大值合并(max-pooling)方法,且下采样因子为3×3矩阵,则第一输入特征图701经过池化操作后得到第一输出特征图702,第一输出特征图702的尺寸为1×1,第一输出特征图702中的像素点的值为8。例如,在反池化操作中,假设第二输入特征图703的尺寸是1×1,第二输入特征图703需要扩大至其尺寸为3×3,则反池化操作的上采样因子可以为3×3矩阵。在反池化操作中,首先获取池化操作中最大值所在位置的坐标(即坐标(0,1)),然后将坐标为(0,1)的像素点填充最大激活值(例如,7.8),其余位置的像素点全部填充0,从而得到第二输出特征图704,第二输出特征图704的尺寸为3×3。

例如,在步骤s202中,操作“利用特征提取子网络提取风格图像的风格特征以生成多个风格特征图”可以包括以下步骤:

s2021:利用第一卷积层组提取风格图像的风格特征以产生多个第一中间风格特征图,

s2022:利用第一池化层对多个第一中间风格特征图执行第一下采样操作,以得到多个第一池化风格特征图,

s2023:利用第二卷积层组提取多个第一池化风格特征图的风格特征以产生多个第二中间风格特征图,

s2024:利用第二池化层对多个第二中间风格特征图执行第二下采样操作以得到多个第二池化风格特征图,

s2025:利用第三卷积层组提取多个第二池化风格特征图的风格特征以产生多个第三中间风格特征图,

s2026:利用第三池化层对多个第三中间风格特征图执行第三下采样操作以得到多个第三池化风格特征图,

s2027:利用第四卷积层组提取多个第三池化风格特征图的风格特征以产生多个第四中间风格特征图。

例如,多个风格特征图包括多个第四中间风格特征图。

例如,在步骤s202中,操作“利用特征提取子网络提取内容图像的内容特征以生成多个内容特征图”可以包括以下步骤:

s2121:利用第一卷积层组所提取内容图像的内容特征以产生多个第一中间内容特征图,

s2122:利用第一池化层对多个第一中间内容特征图执行第一下采样操作,以得到多个第一池化内容特征图,

s2123:利用第二卷积层组提取多个第一池化内容特征图的内容特征以产生多个第二中间内容特征图,

s2124:利用第二池化层对多个第二中间内容特征图执行所述第二下采样操作以得到多个第二池化内容特征图,

s2125:利用第三卷积层组提取多个第二池化内容特征图的内容特征以产生多个第三中间内容特征图,

s2126:利用第三池化层对多个第三中间内容特征图执行第三下采样操作以得到多个第三池化内容特征图,

s2127:利用第四卷积层组提取多个第三池化内容特征图的内容特征以产生多个第四中间内容特征图。

例如,多个内容特征图包括多个第四中间内容特征图。

需要说明的是,利用特征提取子网络提取风格图像的风格特征以生成多个风格特征图的操作和利用特征提取子网络提取内容图像的内容特征以生成多个内容特征图的操作类似,下面以利用特征提取子网络提取风格图像的风格特征以生成多个风格特征图的操作为例详细描述特征提取子网络的工作原理。

例如,内容图像的尺寸和风格图像的尺寸相同。风格图像的尺寸和内容图像的尺寸可以均为224×224。但不限于此,风格图像的尺寸和内容图像的尺寸还可以均为256×256等,风格图像的尺寸和内容图像的尺寸也可以不相同,例如,风格图像的尺寸为256×256,而内容图像的尺寸为800×800,本公开实施例对此不作限制。在本公开下面的描述中,以风格图像的尺寸为224×224为例进行详细说明

例如,风格图像包括r、g、b三个颜色通道。

例如,如图6所示,在步骤s2021中,第一卷积层组cp1可以包括两个卷积层(图6所示的卷积层c11和卷积层c12)和两个激活层(图6所示的激活层r11和激活层r12),且第一卷积层组cp1中的每个卷积层包括64个3×3卷积核。第一卷积层组cp1中的卷积层c11和激活层r11用于提取风格图像f0的风格特征以产生多个中间风格特征图fs10,第一卷积层组cp1中的卷积层c12和激活层r12用于提取多个中间风格特征图fs10的风格特征以产生多个第一中间风格特征图fs11。多个中间风格特征图fs10的数量可以为64,多个中间风格特征图fs10的尺寸相同,例如均为224×224;多个第一中间风格特征图fs11的数量可以为64,多个第一中间风格特征图fs11的尺寸相同,例如均为224×224。

例如,在步骤s2022中,第一池化层pl1用于对多个第一中间风格特征图fs11执行下采样操作,以得到多个第一池化风格特征图ps1。多个第一池化风格特征图ps1的尺寸相同,如图6所示,在一些示例中,第一池化层pl1的下采样因子可以为2×2,步长(stride)为2,由于第一中间风格特征图fs11的尺寸为224×224,则第一池化风格特征图ps1的尺寸为112×112。由于多个第一中间风格特征图fs11的数量可以为64,则多个第一池化风格特征图ps1的数量也为64。也就是说,多个第一池化风格特征图ps1的数量和多个第一中间风格特征图fs11的数量相同,而第一池化风格特征图ps1的尺寸变为第二中间风格特征图fs11的尺寸的0.25倍。

例如,如图6所示,在步骤s2023中,第二卷积层组cp2也可以包括两个卷积层(图6所示的卷积层c21和卷积层c22)和两个激活层(图6所示的激活层r21和激活层r22),且第二卷积层组cp2中的每个卷积层包括128个3×3卷积核。第二卷积层组cp2中的卷积层c21和激活层r21用于提取多个第一池化风格特征图ps1的风格特征以产生多个中间风格特征图fs20,第二卷积层组cp2中的卷积层c22和激活层r22用于提取多个中间风格特征图fs20的风格特征以产生多个第二中间风格特征图fs21。多个中间风格特征图fs20的数量可以为128,多个中间风格特征图fs20的尺寸相同,例如均为112×112。多个第二中间风格特征图fs21的数量可以为128,多个第二中间风格特征图fs21的尺寸相同,例如均为112×112。

例如,如图6所示,在步骤s2024中,第二池化层pl2用于对多个第二中间风格特征图fs21执行下采样操作,以得到多个第二池化风格特征图ps2。多个第二池化风格特征图ps2的尺寸相同,如图6所示,在一些示例中,第二池化层pl2的下采样因子可以为2×2,步长(stride)为2,由于第二中间风格特征图fs21的尺寸为112×112,则第二池化风格特征图ps2的尺寸为56×56。由于多个第二中间风格特征图fs21的数量可以为128,则多个第二池化风格特征图ps2的数量也为128。

例如,如图6所示,在步骤s2025中,第三卷积层组cp3可以包括三个卷积层(图6所示的卷积层c31、卷积层c32和卷积层c33)和三个激活层(图6所示的激活层r31、激活层r32和激活层r33),且第三卷积层组cp3中的每个卷积层包括256个3×3卷积核。第三卷积层组cp3中的卷积层c31和激活层r31用于提取多个第二池化风格特征图ps2的风格特征以产生多个中间风格特征图fs30,第三卷积层组cp3中的卷积层c32和激活层r32用于提取多个中间风格特征图fs30的风格特征以产生多个中间风格特征图fs32,第三卷积层组cp3中的卷积层c33和激活层r33用于提取多个中间风格特征图fs32的风格特征以产生多个第三中间风格特征图fs31。多个中间风格特征图fs30的数量可以为256,多个中间风格特征图fs30的尺寸相同,例如均为56×56。多个第三中间风格特征图fs31的数量可以为256,多个第三中间风格特征图fs31的尺寸相同,例如均为56×56。

例如,如图6所示,在步骤s2026中,第三池化层pl3用于对多个第三中间风格特征图fs31执行下采样操作,以得到多个第三池化风格特征图ps3。多个第三池化风格特征图ps3的尺寸相同,如图6所示,在一些示例中,第三池化层pl3的下采样因子也为2×2,步长(stride)为2,由于第三中间风格特征图fs31的尺寸为56×56,则第三池化风格特征图ps3的尺寸为28×28。由于多个第三中间风格特征图fs31的数量可以为256,则多个第三池化风格特征图ps3的数量也为256。

例如,如图6所示,在步骤s2027中,第四卷积层组cp4可以包括一个卷积层(图6所示的卷积层c41)和和一个激活层(图6所示的激活层r41),且第四卷积层组cp4中的卷积层包括512个3×3卷积核。第四卷积层组cp4中的卷积层c41和激活层r41用于提取多个第三池化风格特征图ps3的风格特征以产生多个第四风格特征图fs4。多个第四风格特征图fs4的数量可以为512,多个第四风格特征图fs4的尺寸相同,例如均为28×28。

例如,如图6所示,多个风格特征图f11包括多个第四风格特征图fs4,即多个风格特征图f11的数量可以为512,多个风格特征图f11的尺寸相同,例如均为28×28。

例如,在特征提取子网络中,每个激活层可以包括relu函数。

类似地,利用特征提取子网络对内容图像进行处理之后得到的多个内容特征图,多个内容特征图包括第四卷积层组cp4中的激活层r41输出的多个第四中间内容特征图。

需要说明的是,在特征提取子网络中,每个特征图表示一个特征通道。也就是说,若多个第四风格特征图fs4的数量为512,则特征通道的数量为512。

例如,在步骤s202中,融合器102用于对多个内容特征图进行归一化,其通过对每个内容特征图的特征的均值和方差来匹配每个风格特征图的均值和方差,以实现将风格特征图的风格特征传递给内容特征图。

例如,在步骤s202中,多个输出特征图表示为:

其中,a(x,y)表示多个输出特征图组成的三维矩阵,x表示多个内容特征图组成的三维矩阵,y表示多个风格特征图组成的三维矩阵,μ(x)表示多个内容特征图的均值组成的三维矩阵,σ(x)表示多个内容特征图的方差组成的三维矩阵,μ(y)表示多个风格特征图的均值组成的三维矩阵,σ(y)表示多个风格特征图的方差组成的三维矩阵。例如,多个输出特征图的数量、多个内容特征图的数量、多个风格特征图的数量相同,例如均为j0,j0为正整数。a(x,y)可以表示为[a1(x1,y1),a2(x2,y2),…,ag(xg,yg),…,aj0(xj0,yj0)],ag(xg,yg)表示一个二维矩阵,g为整数,且大于等于1且小于等于j0。类似地,x可以表示为[x1,x2,…,xg,…,xj0],xj0表示一个二维矩阵;y可以表示为[y1,y2,…,yg,…,yj0],yj0表示一个二维矩阵;μ(x)可以表示为[μ1(x1),μ2(x2),…,μg(xg),…,μj0(xj0)],μg(xg)表示一个二维矩阵,且为xg的均值;σ(x)可以表示为[σ1(x1),σ2(x2),…,σg(xg),…,σj0(xj0)],σg(xg)表示一个二维矩阵,且为xg的方差;μ(y)可以表示为[μ1(y1),μ2(y2),…,μg(yg),…,μj0(yj0)],μg(yg)表示一个二维矩阵,且为yg的均值;σ(y)可以表示为[σ1(x1),σ2(x2),…,σg(yg),…,σj0(yj0)],σg(yg)表示一个二维矩阵,且为yg的方差。例如,在图6所示的示例中,j0可以为512;多个输出特征图f1的尺寸相同,例如,为28×28;同理,多个内容特征图的尺寸也相同,例如,为28×28;多个风格特征图的尺寸也相同,例如,为28×28。由此,a(x,y)为一个28×28×512的三维矩阵,x为一个28×28×512的三维矩阵,y为一个28×28×512的三维矩阵,μ(x)为一个28×28×512的三维矩阵,σ(x)为一个28×28×512的三维矩阵,μ(y)为一个28×28×512的三维矩阵,σ(y)为一个28×28×512的三维矩阵。

例如,融合器102可以基于多个风格特征图组成的三维矩阵中的第g个风格特征图yg对多个内容特征图组成的三维矩阵中的第g个内容特征图xg执行风格转移处理后可以得到多个输出特征图组成的三维矩阵中的第g个输出特征图ag(xg,yg)。也就是说,ag(xg,yg)可以表示为:

例如,在本公开实施例提供的图像处理方法中,在获取风格图像和内容图像之前,图像处理方法还包括:预先训练生成神经网络。

图8为本公开一实施例提供的一种训练生成神经网络的示意性流程图,

图9为本公开一实施例提供的一种在训练生成神经网络的过程中的训练模块的示意性框图。

例如,如图8所示,预先训练生成神经网络可以包括以下步骤:

s70:获取训练风格图像和训练内容图像;

s71:基于训练风格图像,利用生成神经网络对训练内容图像执行风格迁移处理,以得到训练输出图像和多个训练输出特征图,其中,生成神经网络的解码子网络用于生成并输训练输出图像,生成神经网络中的融合器用于生成并输出多个训练输出特征图;

s72:利用分析神经网络分别提取训练输出图像的风格特征和内容特征,以生成多个第一训练风格特征图和多个训练内容特征图;

s73:利用分析神经网络提取训练风格图像的风格特征,以得到多个第二训练风格特征图;

s74:根据多个第一训练风格特征图、多个第二训练风格特征图、多个训练内容特征图和多个训练输出特征图,通过损失函数计算解码子网络的参数的损失值;

s75:根据损失值对解码子网络的参数进行修正;

s76:判断损失函数是否满足预定条件;

在损失函数满足预定条件时,则执行步骤s77:得到训练好的生成神经网络;

在损失函数不满足预定条件时,则返回到步骤s70:继续输入训练风格图像和训练内容图像以重复执行上述训练过程。

例如,如图9所示,在训练过程中,训练模块包括生成神经网络100、分析神经网络200和损失函数。损失函数用于计算生成神经网络100的参数的损失值,生成神经网络100的参数可以根据损失值进行修正。

例如,分析神经网络200和特征提取子网络101的结构和参数均相同。例如,分析神经网络200也可以采用vgg16或vgg19网络。在训练过程中,风格特征可以通过分析神经网络200中的多个卷积层(例如,两个或三个卷积层等)提取,而内容特征可以通过分析神经网络200中的一个卷积层提取。但不限于此,风格特征特也可以通过分析神经网络200中的一个卷积层提取。内容特征也可以通过分析神经网络200中的多个卷积层提取。本公开的实施例对此不作具体限制。

需要说明的是,分析神经网络200和特征提取子网络101的结构和参数也可以至少部分不相同。

例如,在一个示例中,若分析神经网络200包括vgg16网络中的多个层,则多个训练内容特征图可以包括vgg16网络中第relu4_1层输出的特征图;多个第一训练风格特征图可以包括vgg16网络中第relu1_1层输出的特征图、vgg16网络中第relu2_1层输出的特征图、vgg16网络中第relu3_1层输出的特征图和vgg16网络中第relu4_1层输出的特征图;多个第二训练风格特征图也可以包括vgg16网络中第relu1_1层输出的特征图、vgg16网络中第relu2_1层输出的特征图、vgg16网络中第relu3_1层输出的特征图和vgg16网络中第relu4_1层输出的特征图。但不限于此,多个训练内容特征图可以包括vgg16网络中第relu4_3层输出的特征图,多个第一训练风格特征图也可以均包括vgg16网络中第relu1_2层输出的特征图、vgg16网络中第relu2_2层输出的特征图、vgg16网络中第relu3_3层输出的特征图和vgg16网络中第relu4_3层输出的特征图;类似地,多个第二训练风格特征图也可以均包括vgg16网络中第relu1_2层输出的特征图、vgg16网络中第relu2_2层输出的特征图、vgg16网络中第relu3_3层输出的特征图和vgg16网络中第relu4_3层输出的特征图。

例如,在另一个示例中,若分析神经网络200包括vgg19网络中的多个层,则多个训练内容特征图可以包括vgg19网络中第relu5_2层输出的特征图;多个第一训练风格特征图可以包括vgg19网络中第relu1_1层输出的特征图、vgg19网络中第relu2_1层输出的特征图、vgg19网络中第relu3_2层输出的特征图、vgg19网络中第relu4_2层输出的特征图和vgg19网络中第relu5_2层输出的特征图;多个第二训练风格特征图也可以包括vgg19网络中第relu1_1层输出的特征图、vgg19网络中第relu2_1层输出的特征图、vgg19网络中第relu3_2层输出的特征图、vgg19网络中第relu4_2层输出的特征图和vgg19网络中第relu5_2层输出的特征图。

需要说明的是,特征提取子网络中用于输出内容特征图的层和分析神经网络中用于输出内容特征图的层也彼此对应。也就是说,若特征提取子网络包括第一vgg16网络中的多个层,分析神经网络200包括第二vgg16网络中的多个层,在特征提取子网络中,第一vgg16网络中第relu4_1层输出的特征图作为内容特征图;则在分析神经网络200中,相应地,第二vgg16网络中第relu4_1层输出的特征图作为内容特征图。由此,可以保证在步骤s71中得到的多个训练输出特征图和在步骤s72中得到的多个训练内容特征图的尺寸和数量相同。

例如,步骤s71的具体过程可以参考上述对步骤20的相关描述,在步骤s72和步骤s73中,利用分析神经网络提取风格特征和内容特征的详细说明可以参考上述关于特征提取子网络的相关说明,重复之处在此不再赘述。

例如,在一个示例中,预定条件对应于在一定第一训练输入图像输入下神经网络的损失值的最小化。在另一个示例中,预定条件为神经网络的训练次数或训练周期达到预定数目。

需要说明的是,上述示例仅是示意性说明生成神经网络的训练过程。本领域技术人员应当知道,在训练阶段,需要利用大量样本图像对生成神经网络进行训练;同时,在每一幅样本图像训练过程中,都可以包括多次反复迭代以对生成神经网络的参数进行修正。又例如,训练阶段还包括对生成神经网络的参数进行微调(fine-tune),以获取更优化的参数。

例如,解码子网络103的初始参数可以为随机数,例如随机数符合高斯分布。解码子网络103的初始参数也可以采用imagenet等图像数据库的已训练好的参数。本公开的实施例对此不作限制。

例如,损失函数可以根据解码子网络103的初始参数计算损失值。损失值可以从解码子网络103的输出层到输入层逐层反向传播,以使损失值分摊到解码子网络103的各层的所有单元,从而获取各单元的误差值。该误差值即为修正各单元的参数的依据。例如,误差值可以表示为损失值对各单元参数的偏导数。

需要说明的是,在本公开的实施例的训练过程中,由于特征提取子网络采用已经训练好的vgg16网络中的多个层,从而不需要对特征提取子网络的参数进行修正。另外,融合器中不包括网络参数,因此,也不需要对融合器进行训练。由此,在训练过程中,仅需要通过损失值对解码子网络的参数进行修正。然而,若特征提取子网络采用其他未训练好的神经网络时,也可以对特征提取子网络的参数进行训练,本公开对此不作限制。

例如,训练模块还可以包括优化函数(未示出),优化函数可以根据损失值计算解码子网络103的参数的误差值,并根据该误差值调整解码子网络103的参数。优化函数可以采用随机梯度下降(stochasticgradientdescent,sgd)算法,批量梯度下降(batchgradientdescent,bgd)算法等计算解码子网络103的参数的误差值。

例如,训练内容图像可以为各种类型的图像。例如,训练内容图像可以为通过数码相机或手机拍摄的图像,其可以为人物图像、动植物图像或风景图像等。训练风格图像可以为各种艺术大师(例如莫奈、梵高、毕加索等)的名画等,但不限于此,风格图像还可以为水墨画、素描画等。

例如,如图8所示,损失函数包括内容损失函数lc和风格损失函数ls。内容损失函数lc用于描述训练内容图像和训练输出图像的内容的差异,风格损失函数ls用于描述训练风格图像和训练输出图像的风格的差异。例如,损失函数可以表示为:

lt=a·lc+β·ls

其中,α表示内容损失函数lc的权重,β表示风格损失函数ls的权重。

例如,内容损失可以为多个训练内容特征图和多个训练输出特征图之间的欧式距离,内容损失函数lc可以表示为:

其中,t表示训练内容图像,g(t)表示训练输出图像,f11(g(t))表示多个训练内容特征图组成的三维矩阵,f2(t)表示多个训练输出特征图组成的三维矩阵,c1为常数,用于进行标准化处理。例如,多个训练内容特征图的数量和多个训练输出特征图的数量相同,且多个训练内容特征图和多个训练输出特征图一一对应。

例如,由于融合器只传递了风格特征的均值和方差,因此,风格损失采用均值和方差对数据进行匹配。风格损失函数ls可以表示为:

其中,k为整数,s表示训练风格图像,f12(s)表示多个第二训练风格特征图组成的三维矩阵,f12(g(t))表示多个第一训练风格特征图组成的三维矩阵,μi(f12(g(t)))表示多个第一训练风格特征图的均值组成的三维矩阵,μi(f12(s))表示多个第二训练风格特征图的均值组成的三维矩阵,σi(f12(g(t)))表示多个第一训练风格特征图的方差组成的三维矩阵,σi(f12(s))表示多个第二训练风格特征图的方差组成的三维矩阵。例如,若多个第一训练风格特征图包括vgg16网络中第relu1_1层输出的第一组第一训练风格特征图、vgg16网络中第relu2_1层输出的第二组第一训练风格特征图、vgg16网络中第relu3_1层输出的第三组第一训练风格特征图和vgg16网络中第relu4_1层输出的第四组第一训练风格特征图。多个第二训练风格特征图包括vgg16网络中第relu1_1层输出的第一组第二训练风格特征图、vgg16网络中第relu2_1层输出的第二组第二训练风格特征图、vgg16网络中第relu3_1层输出的第三组第二训练风格特征图和vgg16网络中第relu4_1层输出的第四组第二训练风格特征图。

例如,当k=1时,μ1(f12(g(t)))表示第一组第一训练风格特征图的均值组成的三维矩阵,μ1(f12(s))表示第一组多个第二训练风格特征图的均值组成的三维矩阵;σ1(f12(g(t)))表示第一组第一训练风格特征图的方差组成的三维矩阵,σ1(f12(s))表示第一组第二训练风格特征图的方差组成的三维矩阵。类似地,当k=2时,μ2(f12(g(t)))表示第二组第一训练风格特征图的均值组成的三维矩阵,μ2(f12(s))表示第二组第二训练风格特征图的均值组成的三维矩阵;σ2(f12(g(t)))表示第一组第一训练风格特征图的方差组成的三维矩阵,σ2(f12(s))表示第一组第二训练风格特征图的方差组成的三维矩阵。当k为3和4时,与上述类似,在此不再赘述。

例如,步骤s74可以包括:根据多个第一训练风格特征图和多个第二训练风格特征图通过风格损失函数计算解码子网络的参数的风格损失值;以及根据多个训练内容特征图和多个训练输出特征图通过内容损失函数计算解码子网络的参数的内容损失值。

例如,损失值包括内容损失值和风格损失值。

例如,在一个具体实施例中,若解码子网络(以下称为第一解码子网络)采用与特征提取子网络对称的网络结构,特征提取子网络、融合器和第一解码子网络构成第一生成神经网络,本公开实施例提供的解码子网络(以下称为第二解码子网)特征提取子网络和融合器构成第二生成神经网络。第一解码子网络的参数为3505000,第二解码子网络的参数为337000,即第二解码子网络的参数仅为第一解码子网络的参数的十分之一。在同等条件下,训练第一生成神经网络的时间为7小时,训练第二生成神经网络的时间为5小时。对于相同的内容图像(尺寸为800×800)和风格图像(尺寸为256×256),利用第一生成神经网络对该内容图像和风格图像进行100次处理,处理的平均时间为0.85秒,利用第二生成神经网络对该内容图像和风格图像进行100次处理,处理的平均时间为0.52秒。综上可知,利用本公开实施例提供的生成神经网络进行图像处理可以提高运行时间、减低模型参数量;另外,在训练过程中,可以降低训练生成神经网络的时间。

图10为本公开一实施例提供的一种图像处理装置的示例性框图。例如,如图10所示,本公开实施例提供的图像处理装置70包括图像获取模块71和图像处理模块72。这些组件通过总线系统和/或其它形式的连接机构(未示出)互连。应当注意,图10所示的图像处理装置70的组件和结构只是示例性的,而非限制性的,根据需要,图像处理装置70也可以具有其他组件和结构。

例如,图像获取模块71用于获取风格图像和内容图像。图像获取模块71可以包括存储器,存储器存储有风格图像和内容图像。或者,图像获取模块71也可以包括一个或多个摄像头,以获取内容图像和风格图像。例如,图像获取模块71可以为硬件、软件、固件以及它们的任意可行的组合。

例如,图像处理模块72可以包括生成神经网络720。生成神经网络720用于:基于风格图像,利用生成神经网络对内容图像进行风格迁移处理,以生成输出图像。生成神经网络720包括特征提取子网络、融合器和解码子网络,解码子网络包括多个稠密计算模块,多个稠密计算模块中的第m个稠密计算模块包括n个卷积模块,n个卷积模块中的第i个卷积模块被配置为接收并处理第i个卷积模块之前的i-1个卷积模块输出的i-1个特征图组,以得到第i个特征图组,第m个稠密计算模块的输出包括所述n个卷积模块输出的n个特征图组,i、n、m均为整数,m大于等于1且小于等于多个稠密计算模块的数量,n大于等于2,且i大于等于2且小于等于n。图像处理模块72具体用于:利用特征提取子网络提取风格图像的风格特征以生成多个风格特征图和提取内容图像的内容特征以生成多个内容特征图;基于多个风格特征图利用融合器对多个内容特征图执行风格转移处理,以得到多个输出特征图;根据多个输出特征图利用解码子网络重构并输出所述输出图像。需要说明的是,图像处理模块72中的生成神经网络720与上述图像处理方法的实施例中的生成神经网络100的结构和功能相同,在此不再赘述。

例如,图像处理装置70还包括训练模块。训练模块包括生成神经网络720、分析神经网络和损失函数,训练模块用于预先训练生成神经网络720。

需要说明的是,利用生成神经网络对内容图像进行任意风格转移处理的具体过程、利用训练模块对生成神经网络进行训练的具体过程等可以参考上述图像处理方法的实施例中的相关描述,重复之处不再赘述

图11为本公开一实施例提供的另一种图像处理装置的示意性框图。如图11所示,该图像处理装置80包括处理器81和存储器82。应当注意,图11所示的图像处理装置80的组件只是示例性的,而非限制性的,根据实际应用需要,该图像处理装置80还可以具有其他组件。

例如,处理器81和存储器82之间可以直接或间接地互相通信。

例如,处理器81和存储器82等组件之间可以通过网络连接进行通信。网络可以包括无线网络、有线网络、和/或无线网络和有线网络的任意组合。网络可以包括局域网、互联网、电信网、基于互联网和/或电信网的物联网(internetofthings)、和/或以上网络的任意组合等。有线网络例如可以采用双绞线、同轴电缆或光纤传输等方式进行通信,无线网络例如可以采用3g/4g/5g移动通信网络、蓝牙、zigbee或者wifi等通信方式。本公开对网络的类型和功能在此不作限制。

例如,处理器81可以控制图像处理装置80中的其它组件以执行期望的功能。处理器81可以是中央处理单元(cpu)、张量处理器(tpu)或者图形处理器gpu等具有数据处理能力和/或程序执行能力的器件。中央处理器(cpu)可以为x86或arm架构等。gpu可以单独地直接集成到主板上,或者内置于主板的北桥芯片中。gpu也可以内置于中央处理器(cpu)上

例如,存储器82可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器、闪存等。在计算机可读存储介质中还可以存储各种应用程序和各种数据,例如风格图像、以及应用程序使用和/或产生的各种数据等。

例如,存储器82用于存储非暂时性计算机可读指令,处理器81用于运行计算机可读指令,以实现各种功能。例如,计算机可读指令被处理器81运行时可以执行根据上述任一实施例所述的图像处理方法中的一个或多个步骤。需要说明的是,关于图像处理方法的处理过程的详细说明可以参考上述图像处理方法的实施例中的相关描述,重复之处不再赘述。

本公开至少一实施例还提供一种存储介质。例如,在存储介质上可以存储一个或多个计算机指令。存储介质上存储的一些计算机指令可以是例如用于实现上述图像处理方法中的一个或多个步骤的指令。

对于本公开,还有以下几点需要说明:

(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。

(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。

以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1