神经网络、训练方法、图像处理方法及图像处理装置与流程

文档序号:17049963发布日期:2019-03-05 19:57阅读:248来源:国知局
神经网络、训练方法、图像处理方法及图像处理装置与流程

本公开的实施例涉及一种神经网络、卷积神经网络的训练方法、图像处理方法以及图像处理装置。



背景技术:

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



技术实现要素:

本公开至少一实施例提供一种神经网络,其包括:第一卷积神经网络和分析网络。第一卷积神经网络用于对输入的第一图像进行风格转移,以生成第二图像;分析网络用于通过损失函数计算所述第一卷积神经网络的参数的损失值,并根据所述损失值对所述第一卷积神经网络的参数进行修正。其中,所述损失函数包括权重偏置比损失函数。

例如,在本公开一示例提供的神经网络中,所述第一卷积神经网络包括第一子网络、第二子网络和第三子网络。所述第一子网络、第二子网络和第三子网络分别包括多个第一卷积层,所述第一卷积层包括多个第一卷积核和多个偏置,所述第一卷积神经网络的参数包括所述多个第一卷积核和所述多个偏置。

例如,在本公开一示例提供的神经网络中,所述权重偏置比损失函数表示为:

其中,ll1表示所述权重偏置比损失函数,w为所述第一卷积神经网络中的所有第一卷积核的绝对值的平均值,b为所述第一卷积神经网络中的所有偏置的绝对值的平均值,ε为正数。

例如,在本公开一示例提供的神经网络中,所述分析网络包括第二卷积神经网络。所述第二卷积神经网络用于接收所述第一图像、所述第二图像和第三图像,并分别提取所述第一图像的第一卷积特征、所述第二图像的第一卷积特征和第二卷积特征以及所述第三图像的第二卷积特征,所述损失函数还包括内容损失函数和风格损失函数。

例如,在本公开一示例提供的神经网络中,所述第一卷积特征是内容特征,所述第二卷积特征是风格特征。

例如,在本公开一示例提供的神经网络中,所述第二卷积神经网络包括依次连接的多个第二卷积层和间插于相邻第二卷积层之间的多个第二池化层,每个所述第二卷积层用于提取所述第一卷积特征和/或所述第二卷积特征。第l个第二卷积层具有nl个第二卷积核,所述第l个第二卷积层用于生成并输出所述第一图像的nl个第一特征图像、所述第二图像的nl个第二特征图像和nl个第三特征图像以及所述第三图像的nl个第四特征图像,且所述nl个卷积核分别与所述nl个第一特征图像、所述nl个第二特征图像、所述nl个第三特征图像以及所述nl个第四特征图像一一对应。所述nl个第一特征图像、nl个第二特征图像、nl个第三特征图像和nl个第四特征图像的尺寸相同。

例如,在本公开一示例提供的神经网络中,所述内容损失函数用于根据所述第一图像的第一卷积特征和所述第二图像的第一卷积特征计算所述第一卷积神经网络的参数的内容损失值,所述风格损失函数用于根据所述第二图像的第二卷积特征和所述第三图像的第二卷积特征计算所述第一卷积神经网络的参数的风格损失值。所述第l个第二卷积层的所述内容损失函数表示为:

其中,cl表示所述内容损失函数,表示在所述第l个第二卷积层中第i个第二卷积核对应的第一特征图像中第j个位置的值,表示在所述第l个第二卷积层中第i个第二卷积核对应的第三特征图像中第j个位置的值,c1为常数,

总内容损失函数表示为:

其中,lcontent表示所述总内容损失函数,q1为正整数,且表示产生并输出所述第一卷积特征的第二卷积层的数量,w1l表示cl的权重;所述第l个第二卷积层的所述风格损失函数表示为:

其中,el表示所述风格损失函数,ml表示所述第四特征图像的尺寸,表示在所述第l个第二卷积层中第i个第二卷积核对应的第二特征图像的格拉姆矩阵中第j个位置的值,表示在所述第l个第二卷积层中第i个第二卷积核对应的第四特征图像的格拉姆矩阵中第j个位置的值,c2为常数,

总风格损失函数表示为:

其中,lstyle表示所述总风格损失函数,q2为正整数,且表示产生并输出所述第二卷积特征的第二卷积层的数量,w2l表示el的权重。

例如,本公开一示例提供的神经网络还包括第一转换矩阵和第二转换矩阵。所述第一转换矩阵用于将所述第一图像的第一颜色通道、第二颜色通道和第三颜色通道的数据信息转换为第一中间图像的亮度信道、第一色差信道和第二色差信道的数据信息;所述第一子网络、所述第二子网络和所述第三子网络分别用于对所述第一中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息进行风格迁移处理,以生成第二中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息;所述第二转换矩阵用于将所述第二中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息转换为所述第二图像的第一颜色通道的数据信息、第二颜色通道的数据信息和第三颜色通道的数据信息。

例如,在本公开一示例提供的神经网络中,所述第二子网络包括第一标准上采样层和第一标准下采样层,所述第三子网络包括第二标准上采样层和第二标准下采样层。所述第一标准下采样层用于替代所述第二子网络中最初的第一卷积层,所述第一标准上采样层用于替代所述第二子网络中最后的第一卷积层;所述第二标准下采样层用于替代所述第三子网络中最初的第一卷积层,所述第二标准上采样层用于替代所述第三子网络中最后的第一卷积层。

本公开至少一实施例还提供一种卷积神经网络的训练方法,包括:初始化所述卷积神经网络;获取第一图像;利用所述第一图像对初始化后的所述卷积神经网络进行训练;通过损失函数计算所述卷积神经网络的参数的损失值;以及根据所述损失值对所述卷积神经网络的参数进行修正,以得到训练好的所述卷积神经网络,其中,所述损失函数包括权重偏置比损失函数。

例如,在本公开一示例提供的训练方法中,所述卷积神经网络包括第一子网络、第二子网络和第三子网络,所述第一子网络、第二子网络和第三子网络分别包括多个卷积层,所述卷积层包括多个卷积核和多个偏置,所述卷积神经网络的参数包括所述多个卷积核和所述多个偏置。通过所述损失函数计算所述卷积神经网络的参数的损失值,包括:根据所述多个卷积核和所述多个偏置通过所述权重偏置比损失函数计算所述卷积神经网络的参数的权重偏置比损失值。所述损失值包括所述权重偏置比损失值。

例如,在本公开一示例提供的训练方法中,所述第二子网络包括第一标准上采样层和第一标准下采样层,所述第三子网络包括第二标准上采样层和第二标准下采样层。所述第一标准下采样层用于替代所述第二子网络中最初的第一卷积层,所述第一标准上采样层用于替代所述第二子网络中最后的第一卷积层;所述第二标准下采样层用于替代所述第三子网络中最初的第一卷积层,所述第二标准上采样层用于替代所述第三子网络中最后的第一卷积层。

例如,在本公开一示例提供的训练方法中,利用所述第一图像对所述卷积神经网络进行训练,包括:将所述第一图像的第一颜色通道的数据信息、第二颜色通道的数据信息和第三颜色通道的数据信息转换为第一中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息;通过所述第一子网络、第二子网络和第三子网络分别对所述第一中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息进行风格迁移处理,以生成第二中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息;以及将所述第二中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息转换为所述第二图像的第一颜色通道的数据信息、第二颜色通道的数据信息和第三颜色通道的数据信息。

例如,在本公开一示例提供的训练方法中,所述损失函数还包括内容损失函数和风格损失函数。通过所述损失函数计算所述卷积神经网络的参数的所述损失值,包括:分别提取所述第一图像的第一卷积特征、所述第二图像的第一卷积特征和第二卷积特征以及第三图像的第二卷积特征;根据所述第一图像的第一卷积特征和所述第二图像的第一卷积特征通过所述内容损失函数计算所述卷积神经网络的参数的内容损失值;以及根据所述第二图像的第二卷积特征和所述第三图像的第二卷积特征通过所述风格损失函数计算所述卷积神经网络的参数的风格损失值,所述损失值包括所述内容损失值和所述风格损失值。

本公开至少一实施例还提供一种图像处理方法,包括:获取原始图像;将所述原始图像输入至生成神经网络;以及使用所述生成神经网络对所述原始图像进行风格迁移处理,以生成输出图像。其中,所述生成神经网络为根据上述任一项所述的卷积神经网络的训练方法训练得到的所述卷积神经网络。

例如,在本公开一示例提供的图像处理方法中,所述原始图像具有第一颜色通道、第二颜色通道和第三颜色通道,所述第一中间图像具有亮度信道、第一色差信道和第二色差信道。将所述原始图像输入至所述生成神经网络包括:对所述原始图像的第一颜色通道的数据信息、第二颜色通道的数据信息和第三颜色通道的数据信息进行转换,以生成第一中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息;以及将所述第一中间图像输入至所述生成神经网络。

例如,在本公开一示例提供的图像处理方法中,所述卷积神经网络包括第一子网络、第二子网络和第三子网络。使用所述生成神经网络对所述原始图像进行风格迁移处理,以生成所述输出图像,包括:分别使用所述第一子网络、第二子网络和第三子网络处理所述第一中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息,以生成第二中间图像;将所述第二中间图像转换为所述输出图像,其中,所述输出图像为rgb格式的图像,所述第二中间图像为yuv格式的图像。

本公开至少一实施例还提供一种图像处理装置,包括:生成神经网络模块,用于对原始图像进行风格迁移处理,以生成输出图像。其中,所述生成神经网络模块包括根据上述任一项所述的卷积神经网络的训练方法训练得到的所述卷积神经网络。

例如,本公开一示例提供的图像处理装置还包括第一转换模块。所述原始图像具有第一颜色通道、第二颜色通道和第三颜色通道,所述第一中间图像具有亮度信道、第一色差信道和第二色差信道。所述第一转换模块用于将所述原始图像的第一颜色通道的数据信息、第二颜色通道的数据信息和第三颜色通道的数据信息转换为第一中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息。所述卷积神经网络包括第一子网络、第二子网络和第三子网络,所述第一子网络、第二子网络和第三子网络分别用于处理所述第一中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息,以生成第二中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息。

例如,本公开一示例提供的图像处理装置还包括第二转换模块。所述第二转换模块用于将所述第二中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息转换为所述输出图像的第一颜色通道的数据信息、第二颜色通道的数据信息和第三颜色通道的数据信息。

本公开至少一实施例提供一种神经网络、卷积神经网络的训练方法、图像处理方法和图像处理装置,其通过在分析网络中采用权重偏置比损失函数,从而可以更好地发挥第一卷积神经网络中的激活函数的作用,获取更优化的卷积参数,提高图像风格迁移和图像融合效果,在处理效果和处理速度等方面得以兼顾,具有更好、更广泛的应用前景。

附图说明

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

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

图2a示出了一种卷积神经网络的示例性模型图;

图2b示出了一种卷积神经网络的工作过程示意图;

图3为另一种卷积神经网络的结构示意图;

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

图5a为本公开一实施例提供的一种第一卷积神经网络的结构示意图;

图5b为本公开一实施例提供的另一种第一卷积神经网络的结构示意图;

图6a为本公开一实施例提供的一种复合层的示意图;

图6b为本公开一实施例提供的另一种复合层的示意图;

图7为本公开一实施例提供的一种第二卷积神经网络的结构示意图;

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

图9为本公开一实施例提供的一种图像处理方法的示意性流程图;

图10a为一种原始图像的示意图;

图10b为一种风格图像的示意图;

图10c为根据本公开一实施例提供的一种图像处理方法处理得到的输出图像的示意图;

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

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

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

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

具体实施方式

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

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

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

当今,随着图像处理技术的发展,对图像进行风格化迁移处理的方法逐渐成为图像处理领域的研究热点。将一副图像转换成具备某种艺术风格的图片,可以用于基于云计算的图像处理、风格渲染以及数字画廊等产品和服务。

利用深度神经网络进行图片的艺术风格转移是随着深度学习技术的发展而新兴起来的技术。例如,基于参考图像所给出的风格(style),对输入图像进行处理以获得至少部分体现出该风格的输出图像。例如,参考图像为某个艺术家的作品,输出图像则可以在保留原有内容的同时还呈现出该艺术家作画的某些风格特征,甚至使人将其误认为是该艺术家的作品。传统的图像处理效果(例如,instagram公司提供的各种滤镜等)无法获得这样的风格化迁移处理效果。

目前,在商业市场和学术领域中,图像的艺术风格转移均有代表性的产品和技术。利用深度学习技术进行基于艺术风格的图像融合的代表产品有prisma和atisto两款应用。prisma是一款能够将输入图像转换成某种特定艺术风格的输出图像的移动应用(app)。atisto是一款可以用来编辑视频的app,使用者可以通过atisto对输入视频进行处理以得到艺术作品或者其他源图像的风格的输出视频。prisma和atisto均是基于神经网络的算法对输入图像或输入视频进行处理的app。尽管prisma和atisto处理速度较快,但是其处理效果并不明显。

例如,由leona.gatys等人提出一种利用卷积神经网络实现图像风格迁移的方法,请参见文献,leona.gatys,alexanders.echer,matthiasbethge.aneuralalgorithmforartisticstyle.arxiv:1508.06576v2[cs.cv],2015年9月2日。在此将该文献全文引用结合于此,以作为本申请的一部分。该方法主要是基于经过训练的卷积神经网络(cnn),对输入的图片进行不同层次的分解,然后通过风格表达(stylerepresentation)和内容重建(contentreconstruction)两个方面构建映射关系,从而进行风格迁移。该方法能够实现较好的风格迁移效果,然而该方法需要对每一组输入图像(风格图像和内容图像)单独进行训练,需要的计算资源较多,处理速度较慢,处理时间较长,难以实现商用化。

又例如,由justinjohnson等人提出一种图像风格迁移的方法,请参见文献,justinjohnson,alexandrealanhi,lifei-fei.perceptuallossesforreal-timestyletransferandsuper-resolution.arxiv:1603:08155。在此将该文献全文引用结合于此,以作为本申请的一部分。该方法主要是基于卷积神经网络和实例归一化(instancenormalization)进行图片风格转换,其极大地降低了单张图片的处理时间。但是,该方法的神经网络模型仍然较复杂。

本公开至少一实施例提供一种神经网络、卷积神经网络的训练方法、图像处理方法和图像处理装置,其通过在用于训练神经网络的分析网络使用的损失函数中采用或增加权重偏置比(l1)损失函数,从而可以更好地发挥第一卷积神经网络中的激活函数的作用,获取更优化的卷积参数,提高图像风格迁移和图像融合效果,从而在处理效果和处理速度等方面得以兼顾,具有更好、更广泛的应用前景。

最初卷积神经网络(convolutionalneuralnetwork,cnn)主要用于识别二维形状,其对图像的平移、比例缩放、倾斜或其他形式的变形具有高度不变性。cnn主要通过局部感知野和权值共享来简化神经网络模型的复杂性、减少权重的数量。随着深度学习技术的发展,cnn的应用范围已经不仅仅限于图像识别领域,其也可以应用在人脸识别、文字识别、动物分类、图像处理等领域。

图1为一种卷积神经网络的示意图。例如,该卷积神经网络可以用于图像处理,其使用图像作为输入和输出,并通过卷积核替代标量的权重。图1中仅示出了具有3层结构的卷积神经网络,本公开的实施例对此不作限制。如图1所示,卷积神经网络包括输入层101、隐藏层102和输出层103。输入层101具有4个输入,隐藏层102具有3个输出,输出层103具有2个输出,最终该卷积神经网络输出2幅图像。

例如,输入层101的4个输入可以为4幅图像,或者1幅图像的四种特征。隐藏层102的3个输出可以为经过输入层101输入的图像的特征图像。

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

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

例如,在第一卷积层201中,首先,对每个输入应用第一组卷积核中的若干卷积核和第一组偏置中的若干偏置以得到第一卷积层201的输出;然后,第一卷积层201的输出可以通过第一激活层203进行处理,以得到第一激活层203的输出。在第二卷积层202中,首先,对输入的第一激活层203的输出应用第二组卷积核中的若干卷积核和第二组偏置中的若干偏置以得到第二卷积层202的输出;然后,第二卷积层202的输出可以通过第二激活层204进行处理,以得到第二激活层204的输出。例如,第一卷积层201的输出可以为对其输入应用卷积核后再与偏置相加的结果,第二卷积层202的输出可以为对第一激活层203的输出应用卷积核后再与偏置相加的结果。

在利用卷积神经网络进行图像处理前,需要对卷积神经网络进行训练。经过训练之后,卷积神经网络的卷积核和偏置在图像处理期间保持不变。在训练过程中,各卷积核和偏置通过多组输入/输出示例图像以及优化算法进行调整,以获取优化后的卷积神经网络模型。

图2a示出了一种卷积神经网络的示例性模型图,图2b示出了的一种卷积神经网络的工作过程示意图。例如,如图2a和2b所示,输入图像通过输入层输入到卷积神经网络后,依次经过若干个处理过程(如图2a中的每个层级)后输出类别标识。卷积神经网络的组成部分可以包括多个卷积层、多个池化层和全连接层。例如,一个完整的卷积神经网络可以由这三种层叠加组成。例如,图2a仅示出了一种卷积神经网络的三个层级,即第一层级、第二层级和第三层级,每个层级包括一个卷积层和一个池化层,池化层为子采样层。由此,每个层级的处理过程可以包括:对输入图像进行卷积(convolution)以及子采样(sub-sampling)。根据实际需要,例如,每个层级的处理过程还可以包括归一化处理(lcn,localconstantnormalization)等。

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

例如,如图2b所示,卷积层可以使用不同的卷积核对输入图像的某一个局部感受域的数据进行卷积,卷积结果被输入激活层,该激活层根据相应的激活函数进行计算以得到输入图像的特征信息。

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

图3为另一种卷积神经网络的结构示意图。例如,参见图3所示的示例,最后一个卷积层(即第n0个卷积层)的输出被输入到平坦化层以进行平坦化操作(flatten)。平坦化层可以将特征图像(2d图像)转换为向量(1d)。该平坦化操作可以按照如下的方式进行:

vk=fk/j,k%j

其中,v是包含k个元素的向量,f是具有i行j列的矩阵。

然后,平坦化层的输出(即1d向量)被输入到一个全连接层(fcn)。全连接层可以具有与卷积神经网络相同的结构,但不同之处在于,全连接层使用不同的标量值以替代卷积核。

例如,最后一个卷积层的输出也可以被输入到均化层(avg)。均化层用于对卷积层的输出进行平均操作,即利用特征图像的均值表示输出图像,因此,一个2d的特征图像转换成为一个标量。例如,如果卷积神经网络包括均化层,则其可以不包括平坦化层。

例如,根据实际需要,均化层或全连接层可以连接到分类器,分类器可以根据提取的特征进行分类,分类器的输出可以作为卷积神经网络的最终输出,即表征图像类别的类别标识(label)。

例如,分类器可以为支持向量机(supportvectormachine,svm)分类器、softmax分类器以及最邻近规则(knn)分类器等。如图3所示,在一个示例中,卷积神经网络包括softmax分类器,softmax分类器是一种逻辑函数的生成器,可以把一个包含任意实数的k维向量z压缩成k维向量σ(z)。softmax分类器的公式如下:

其中,zj表示k维向量z中第j个元素,σ(z)表示每个类别标识(label)的预测概率,σ(z)为实数,且其范围为(0,1),k维向量σ(z)的和为1。根据以上公式,k维向量z中的每个类别标识均被赋予一定的预测概率,而具有最大预测概率的类别标识被选择作为输入图像的标识或类别。

图4为本公开一实施例提供的一种神经网络的示意性框图。例如,如图4所示,本公开实施例提供的神经网络包括第一卷积神经网络10和分析网络40。例如,第一卷积神经网络10用于对输入的第一图像进行风格转移,以生成第二图像。分析网络40用于通过损失函数30计算第一卷积神经网络10的参数的损失值,并根据损失值对第一卷积神经网络10的参数进行修正。这里,损失函数30包括权重偏置比(l1)损失函数。

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

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

例如,分析网络40可以根据损失值通过优化函数(未示出)计算第一卷积神经网络10的参数的误差值,并根据该误差值调整第一卷积神经网络10的参数。

例如,优化函数可以采用随机梯度下降(stochasticgradientdescent,sgd)算法,批量梯度下降(batchgradientdescent,bgd)算法等计算第一卷积神经网络10的参数的误差值。

例如,第一图像可以为各种类型的图像。例如,第一图像可以为通过数码相机或手机拍摄的图像,其可以为人物图像、动植物图像或风景图像等。

本公开实施例提供的神经网络通过在损失函数中增加权重偏置比损失函数(l1损失函数),从而可以充分发挥第一卷积神经网络中的激活函数的作用,获取更优化的第一卷积神经网络的参数,提高图像风格迁移和图像融合效果,在处理效果和处理速度等方面得以兼顾,具有更好、更广泛的应用前景。

图5a为本公开一实施例提供的一种第一卷积神经网络的结构示意图,图5b为本公开一实施例提供的另一种第一卷积神经网络的结构示意图。

例如,如图5a所示,第一卷积神经网络10包括第一子网络101、第二子网络102和第三子网络103。第一子网络101、第二子网络102和第三子网络103分别包括多个第一卷积层。如图5a所示,例如,第一子网络101包括第一卷积层c11、第一卷积层c12和第一卷积层c1n1;第二子网络102包括第一卷积层c21、第一卷积层c22和第一卷积层c2n1;第三子网络103包括第一卷积层c31、第一卷积层c32和第一卷积层c3n1。

例如,如图5a所示,第一子网络101、第二子网络102和第三子网络103还分别包括多个第一池化层和多个复合层。例如,第一子网络101包括第一池化层p11、第一池化层p12和第一池化层p1n1;第二子网络102包括第一池化层p21、第一池化层p22和第一池化层p2n1;第三子网络103包括第一池化层p31、第一池化层p32和第一池化层p3n1。第一子网络101包括复合层m11、复合层m12和复合层m1n1;第二子网络102包括复合层m21、复合层m22和复合层m2n1;第三子网络103包括复合层m31、复合层m32和复合层m3n1。

例如,第一子网络101、第二子网络102和第三子网络103的结构相同。下面以第一子网络101为例进行详细说明。

例如,如图5a所示,在第一子网络101中,多个第一卷积层依次连接,在一些相邻第一卷积层之间具有第一池化层,在另一些相邻的第一卷积层之间具有复合层。

例如,如图5a所示,在一个示例中,第一子网络101包括n1个的第一卷积层,n1为正整数,且通常大于3,甚至可以上百。低层级的卷积层用于提取第一图像的低阶特征(例如,点、边等);随着层次的增加,高层级的卷积层可以提取第一图像的高阶特征(例如,直线、拐弯、三角形等)。高阶特征可以由低阶特征组合得到。

例如,在第一子网络101中,多个第一池化层的数量和多个复合层的数量相同,且多个第一池化层的下采样因子和多个复合层的上采样因子一一对应,以使第一图像和第二图像的尺寸相同。例如,在如图5a所示的示例中,第一子网络101可以包括n1/2个的第一池化层和n1/2个的复合层,其中,n1为正偶数。又例如,在一个示例中,第一子网络101可以包括2个的第一池化层和2个的复合层,且该2个的第一池化层的下采样因子分别为1/x1和1/x2,则2个的复合层的上采样因子分别为x1和x2。x1和x2为正整数。

需要说明的是,多个第一池化层的数量和多个复合层的数量也可以不相同,只要能使经过第一卷积神经网络10处理后的第二图像与第一图像的尺寸相同即可。

例如,多个第一池化层位于第一子网络101的低层级,多个复合层位于第一子网络101的高层级。也就是说,首先,第一子网络101通过第一池化层对输入的第一图像进行下采样,然后,通过复合层对第一图像进行上采样。

例如,每个第一卷积层包括多个第一卷积核和多个偏置,第一卷积神经网络10的参数包括该多个第一卷积核和多个偏置。由此,损失函数30用于调整第一卷积神经网络10中的第一卷积层的参数。需要说明的是,损失函数30可以调整第一卷积神经网络10中所有层的参数。

需要说明的是,第一子网络101、第二子网络102和第三子网络103的结构也可以不相同。例如,在第二子网络102中,可以省略一些第一池化层或复合层等。

例如,如图5b所示,在一个示例中,第二子网络102'可以包括第一标准上采样层su1和第一标准下采样层sd1,第三子网络103可以包括第二标准上采样层su2和第二标准下采样层sd2。第一标准下采样层sd1用于替代第二子网络102'中最初的第一卷积层,第一标准上采样层su1用于替代第二子网络102'中最后的第一卷积层;第二标准下采样层sd2用于替代第三子网络103'中最初的第一卷积层,第二标准上采样层su2用于替代第三子网络103'中最后的第一卷积层。

例如,第一标准下采样层sd1和第二标准下采样层sd2用于减小输入的第一图像的分辨率,以提高图像处理的速度。例如,第一标准下采样层sd1和第二标准下采样层sd2用于减小特征图像的各个维度的值,从而减少特征图像的数据量。第一标准上采样层su1和第二标准上采样层su2用于增加特征图像的各个维度的值,从而增加特征图像的数据量。

例如,第一标准下采样层sd1和第二标准下采样层sd2可以采用最大值合并(maxpooling)、平均值合并(averagepooling)、跨度卷积(stridedconvolution)等下采样方法。第一标准上采样层su1和第二标准上采样层su2可以采用跨度转置卷积(stridedtransposedconvolution)等上采样方法。

例如,第一标准下采样层sd1还可以用于替代第二子网络102'中最初的第一池化层或复合层,第一标准上采样层su1还可以用于替代第二子网络102'中最后的第一池化层或复合层。第二标准下采样层sd2还可以用于替代第三子网络103'中最初的第一池化层或复合层,第二标准上采样层su2还可以用于替代第三子网络103'中最后的第一池化层或复合层。

例如,如图5b所示,在第二子网络102'中,第一标准下采样sd1层替代了最初的一个第一卷积层、一个第一池化层,第一标准上采样层su1替代了最后的一个第一卷积层、一个复合层。由此,第二子网络102'的网络模型尺寸被减小。同理,第三子网络103'的网络模型尺寸也被减小。从而,第一卷积神经网络10的网络模型尺寸被减小。

例如,第二子网络102'和第三子网络103'的构造可以相同。也就是说,第一标准下采样层sd1和第二标准下采样层sd2相同,第一标准上采样层su1和第二标准上采样层su2也相同。第二子网络102'和第三子网络103'的构造也可以不同。本公开的实施例对此不作限制。

例如,在卷积神经网络中,卷积核用于决定对输入图像进行怎样的处理,偏置用于决定该卷积核的输出是否输入到下一个层级。因此,在卷积神经网络的激活层中,偏置可形象第比喻为“开关”,用于决定“打开”或“关闭”卷积核。针对不同的输入图像,不同的卷积核可以被“打开”或“关闭”以实现多种效果。

例如,在本公开的实施例中,与卷积核相比,偏置需要具有比较大的绝对值,从而更有效地发挥“开关”的作用。l1损失函数则用于调整第一卷积层的多个第一卷积核和多个偏置之间的比值,以增强第一卷积神经网络10中的激活函数的作用。

例如,l1损失函数可以表示为如下公式(1):

其中,ll1表示l1损失函数,w表示第一卷积神经网络10中的所有第一卷积核的绝对值的平均值,b表示第一卷积神经网络10中的所有偏置的绝对值的平均值,ε为一个极小正数,用于保证分母不为0。

例如,ll1的值可以表示第一卷积神经网络10的参数的l1损失值。在对第一卷积神经网络10的参数进行修正的过程中,需要反复调整l1损失值,以使得w尽量小,而b尽量大。

例如,w可以表示为:

其中,cw为第一卷积层具有的第一卷积核的数量,w表示第一卷积层的各卷积核的值。例如,卷积核为2×2的矩阵,w表示矩阵各元素之和。

例如,b可以表示为:

其中,cb为第一卷积层具有的偏置的数量,b表示第一卷积层的各偏置的值。

例如,在本公开实施例中,第一卷积神经网络10中的激活函数可以采用relu函数。但不限于此,第一卷积神经网络10中的激活函数还可以采用sigmoid函数、tanh函数等。

例如,relu函数可以表示为如下公式(2):

其中,out表示relu函数的输出,in1表示relu函数的输入。在卷积神经网络中,in1可以表示为如下公式(3):

in1=w·in0+b(3)

例如,在公式(3)中,in0表示输入到例如第一卷积层c11中的第一图像的像素矩阵,in1表示in0经过第一卷积层c11变化后输出的特征图像的像素矩阵,w表示该卷积层中的卷积核的值,b表示该卷积层中的偏置的值。由上面的公式(2)和(3)可知,当b足够大,则激活函数更能有效发挥激活作用,即激活函数的输出可以更好地表示第一图像的特征信息。

例如,第一池化层可以为第一卷积神经网络10的下采样层(down-samplinglayer),用于减小特征图像的各个维度的值,从而减少特征图像的数据量。复合层为第一卷积神经网络10的上采样层(up-samplinglayer),用于增加特征图像的各个维度的值,从而增加特征图像的数据量。

例如,第一池化层可以采用各种下采样方法对特征图像进行采样。下采样方法包括但不限于:最大值合并、平均值合并、随机合并、欠采样(decimation,例如选择固定的像素)、解复用输出(demuxout,将输入图像拆分为多个更小的图像)等。

例如,复合层可采用插值算法等实现上采样。插值算法例如可以包括内插值、两次立方插值算法(bicubicinterprolation)等。

图6a为本公开一实施例提供的一种复合层的示意图,图6b为本公开一实施例提供的另一种复合层的示意图。

例如,在图6a所示的示例中,复合层采用像素差值法实现上采样。复合层采用2×2的上采样因子,从而可以将4个输入特征图像结合得到1个具有固定像素顺序的输出特征图像。

例如,对于二维的特征图像,第一子网络101中的复合层获取输入的第一数量的输入特征图像,将这些输入特征图像的像素值交织(interleave)重排以产生相同的第一数量的输出特征图像。相比于输入特征图像,输出特征图像的数量没有改变,但是每个输出特征图像的大小增加相应倍数。由此,该复合层通过不同的排列组合增加更多的数据信息,这些组合可给出所有可能的上采样组合。最后,可通过激活层从上采样组合进行选择。

例如,在图6b所示的示例中,复合层采用像素值交织重排方法实现上采样。复合层同样采用2×2的上采样因子,即以每4个输入特征图像为一组,将它们的像素值交织生成4个输出特征图像。输入特征图像的数量和经过复合层处理后的输出特征图像的数量相同,而各输出特征图像的大小增加为输入特征图像的4倍,即具有输入特征图像的4倍的像素数量。

例如,第一子网络101、第二子网络102和第三子网络103还分别包括多个实例归一化层(instancenormalizationlayer)。例如,图5a所示,第一子网络101包括实例归一化层n11、实例归一化层n12和实例归一化层n1n1;第二子网络102包括实例归一化层n21、实例归一化层n22和实例归一化层n2n1;第三子网络103包括实例归一化层n31、实例归一化层n32和实例归一化层n3n1。

例如,如图5a所示,第一子网络101可以包括n1个实例归一化层,即实例归一化层和第一卷积层一一对应。但不限于此,也可以多个第一卷积层(例如,两个或三个第一卷积层等)对应一个实例归一化层,从而实例归一化层的数量少于第一卷积层。本公开实施例对此不作具体限制。

例如,如图5b所示,在第二子网络102'中,第一标准下采样sd1层还可以替代最初的一个实例归一化层,第一标准上采样层su1也可以替代最后的一个实例归一化层。同理,在第三子网络103'中,第二标准下采样sd2和第二标准上采样层su2也可以替代实例归一化层。

例如,实例归一化层用于将第一卷积层输出的特征图像进行标准化处理,以使特征图像的像素的灰度值在预定范围内变化,从而简化生成,改善风格迁移的质量。例如,预定范围可以为[-1,1]。实例归一化层根据每个特征图像自身的均值和方差,对该特征图像进行标准化处理。实例归一化层可用于对单幅图像进行标准化处理。

例如,假设小批梯度下降法(mini-batchgradientdecent)的尺寸为t,第一卷积层(例如,图5a所示的第一卷积层c11或第一卷积层c12)输出的特征图像的数量为c,且每个特征图像均为h行w列的矩阵,则特征图像的模型表示为(t,c,w,h)。从而,实例归一化层的标准化公式可以表示如下:

其中,xtijk为该第一卷积层输出的特征图像集合中的第t个特征块(patch)、第i个特征图像、第j列、第k行的值。ytijk表示xtijk经过实例归一化层处理后得到的结果。ε为一个很小的整数,以避免分母为0。

需要说明的是,本公开实施例对第一卷积神经网络10中各层的数量不作限制。

例如,如图4所示,分析网络40可以包括第二卷积神经网络20。第二卷积神经网络20用于接收第一图像、第二图像和第三图像,且分别产生并输出第一图像的第一卷积特征、第二图像的第一卷积特征和第二卷积特征以及第三图像的第二卷积特征。

例如,第三图像为风格图像。第三图像例如可以为各种艺术大师(例如莫奈、梵高、毕加索等)的名画等,但不限于此,例如第三图像还可以为水墨画、素描画等。

例如,第二图像为第一图像经过第一卷积神经网络10进行风格转移后形成的图像。第二图像包括第一图像的内容特征和第三图像的风格特征。

例如,第一图像、第二图像和第三图像的尺寸均相同。

例如,第一卷积特征是内容(content)特征,第二卷积特征是风格(style)特征。例如,内容特征表示图像中的物体在整幅图像的分布,风格特征则表示在卷积神经网络的不同层中不同特征图像之间的关系。例如,内容特征包括图像的内容信息,风格特征可以包括图像的纹理信息、颜色信息等。纹理信息例如表示特征图像之间的相关性,其与位置无关。卷积神经网络中的特征图像可以是一维矩阵,格拉姆矩阵(grammatrix)可以用于衡量该一维矩阵中各向量的相关程度,因此,卷积神经网络可以引入gram矩阵计算图像的风格特征。例如,gram矩阵可以表示如下:

其中,为第l层中向量特征图像i和j之间的内积(innerproduct)。根据多层特征图像之间的相关性,可以获得第二图像或第三图像静态的多尺度(scale)表达,由此提取了第二图像或第三图像的纹理信息而非全局布局,进而获得风格特征。

图7为本公开一实施例提供的一种第二卷积神经网络的结构示意图。例如,如图7所示,第二卷积神经网络20包括依次连接的多个第二卷积层(例如,第二卷积层c41、第二卷积层c42、第二卷积层c42和第二卷积层c4n2)和间插于相邻第二卷积层之间的多个第二池化层(例如,第二池化层p41、第二池化层p42和第二池化层p42)。每个第二卷积层用于产生并输出第一卷积特征和/或第二卷积特征。如图7所示,在一个示例中,第二卷积神经网络20可以包括n2个第二卷积层和n2个第二池化层,n2为正整数。

例如,每个第二卷积层包括多个第二卷积核。第二卷积核可以用于提取输入图像的第一卷积特征和/或第二卷积特征。例如,图7所示的输入图像可以为第一图像、第二图像或第三图像。

例如,第二卷积神经网络20可以采用已经训练好的卷积神经网络模型。从而,在本公开实施例中,不需对第二卷积神经网络20的参数(例如,第二卷积核等)进行训练并修正。例如,第二卷积神经网络20可以采用alexnet、googlenet、vgg、deepresiduallearning等神经网络模型实现提取输入图像的内容特征和风格特征。vgg网络为深度卷积神经网络的一种,其是由牛津大学视觉几何组(visualgeometrygroup)开发,已经在视觉识别领域得到广泛应用。例如,vgg网络可以包括19层,并且可以对其中的一些层进行归一化处理。

例如,第二卷积神经网络20可以采用可对图像进行分类的深度神经网络。如图7所示,输入图像经过若干个第二卷积层和第二池化层处理,以提取特征。每个第二卷积层的输出都是输入图像的特征图像。第二池化层可以降低特征图像的分辨率并传递给下一层级的第二卷积层。多个第二卷积层可以输出多个特征图像,该多个特征图像可以表征输入图像的不同级别的特征(例如,纹理、边缘、物体等)。经过若干个第二卷积层和第二池化层处理之后,特征图像被输入至平坦化层,平坦化层将特征图像转换成向量然后传递给全连接层以及softmax层。softmax层可以输出输入图像属于每一个类别标识的概率,其中概率最大的标识将作为第二卷积神经网络20最终的输出。由此,第二卷积神经网络20实现图像分类。

例如,在第二卷积神经网络20中,第l个第二卷积层具有nl个第二卷积核,第l个第二卷积层用于生成并输出第一图像的nl个第一特征图像、第二图像的nl个第二特征图像和nl个第三特征图像以及第三图像的nl个第四特征图像,且nl个第二卷积核分别与nl个第一特征图像、nl个第二特征图像、nl个第三特征图像以及nl个第四特征图像一一对应。也就是说,一个第二卷积核用于生成并输出一个第一特征图像、一个第二特征图像、一个第三特征图像或一个第四特征图像。若nl个第二卷积核各不相同,则nl个第一特征图像各不相同,nl个第二特征图像各不相同,nl个第三特征图像各不相同,nl个第四特征图像也各不相同。

例如,l为正整数。l表示第二卷积神经网络20中的第二卷积层的标号。例如,如图7所示,第二卷积神经网络20中具有n2个第二卷积层,则l的取值范围为[1,n2]。在如图7所示的示例中,在提取第一卷积特征时,l为2;在提取第二卷积特征时,l可以为1、2、3和n2。但不限于此,根据实际应用需求,l还可以为其他值。

例如,nl个第一特征图像、nl个第二特征图像、nl个第三特征图像和nl个第四特征图像的尺寸均相同。

例如,第一特征图像和第三特征图像为内容特征图像,第二特征图像和第四特征图像为风格特征图像。也就是说,第二卷积神经网络20中某一些第二卷积层用于提取第一图像的内容特征以得到第一特征图像,第二卷积神经网络20中另一些第二卷积层用于提取第二图像的风格特征和内容特征以分别得到第二特征图像和第三特征图像,第二卷积神经网络20中又一些第二卷积层还用于提取第三图像的风格特征以得到第四特征图像。例如,提取第一图像的内容特征和第二图像的内容特征的第二卷积层可以相同,也可以不同;提取第二图像的风格特征和第三图像的风格特征的第二卷积层可以相同,也可以不同。又例如,提取内容特征和风格特征的第二卷积层可以相同,也可以不同。

例如,相应地,损失函数30还可以包括内容损失函数和风格损失函数。内容损失函数用于描述第一图像和第二图像的内容的差异,风格损失函数用于描述第二图像和第三图像的风格的差异。

例如,内容损失函数用于根据第一图像的第一卷积特征和第二图像的第一卷积特征计算第一卷积神经网络10的参数的内容损失值。风格损失函数用于根据第二图像的第二卷积特征和第三图像的第二卷积特征计算第一卷积神经网络10的参数的风格损失值。

例如,第l个第二卷积层的内容损失函数表示为公式(4):

其中,cl表示内容损失函数,表示在第l个第二卷积层中第i个第二卷积核对应的第一特征图像中第j个位置的值,表示在第l个第二卷积层中第i个第二卷积核对应的第三特征图像中第j个位置的值,s1为常数。

例如,若通过q1个第二卷积层提取输入图像的内容特征,则总内容损失函数表示为公式(5):

其中,lcontent表示总内容损失函数,q1为正整数,且表示产生并输出第一卷积特征的第二卷积层的数量,w1l表示cl的权重。

例如,第l个第二卷积层的风格损失函数表示为公式(6):

其中,el表示风格损失函数,ml表示第四特征图像的尺寸,表示在第l个第二卷积层中第i个第二卷积核对应的第二特征图像的格拉姆矩阵中第j个位置的值,表示在第l个第二卷积层中第i个第二卷积核对应的第四特征图像的格拉姆矩阵中第j个位置的值,s2为常数。

需要说明的是,第二特征图像的尺寸和第四特征图像的尺寸相同,因此,ml也表示第二特征图像的尺寸。

例如,若通过q2个第二卷积层提取输入图像的风格特征,则总风格损失函数表示为公式(7):

其中,lstyle表示总风格损失函数,q2为正整数,且表示产生并输出第二卷积特征的第二卷积层的数量,w2l表示el的权重。

例如,q1和q2可以相同,也可以不同。

例如,风格特征可以通过多个第二卷积层(例如,两个或三个第二卷积层等)提取,而内容特征可以通过一个第二卷积层提取。但不限于此,风格特征特也可以通过一个第二卷积层提取。内容特征也可以通过多个第二卷积层提取。本公开的实施例对此不作具体限制。

例如,根据公式(1)、公式(5)和公式(7),该神经网络的总损失函数ltotal可以表示如下:

ltotal=α·lcontent+β·lstyle+χ·ll1

其中,α、β和χ分别为总损失函数中内容损失函数、风格损失函数和l1损失函数的权重。

例如,第一卷积神经网络10的参数的损失值包括l1损失值、内容损失值和风格损失值。也就是说,ltotal的值即表示第一卷积神经网络10的参数的损失值。

例如,如图4所示,神经网络可以包括第一转换矩阵50和第二转换矩阵51。第一转换矩阵50用于将第一图像的第一颜色通道、第二颜色通道和第三颜色通道的数据信息转换为第一中间图像的亮度信道、第一色差信道和第二色差信道的数据信息。

例如,在一个示例中,如图5a所示,第一子网络101、第二子网络102和第三子网络103分别用于对第一中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息进行风格迁移处理,以生成第二中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息。

例如,在一个示例中,如图5b所示,在第二子网络102'中,第一图像首先经过第一标准下采样层sd1进行下采样处理,以缩小第一中间图像的第一色差通道的数据信息量;然后,第一色差通道的数据信息经过多层第一卷积层处理;接着,第一标准上采样层su1对第一色差通道的数据信息进行上采样处理,以增加第一色差通道的数据信息量;最后第一色差通道的数据信息被传输到第二转换矩阵51。同理,第三子网络103'用于对第一中间图像的第二色差通道的数据信息进行处理。

例如,第二转换矩阵51用于接收并转换经过第一卷积神经网络10处理后的第二中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息,以得到第二图像的第一颜色通道的数据信息、第二颜色通道的数据信息和第三颜色通道的数据信息。

例如,第一图像为rgb格式的图像,第一中间图像为yuv格式的图像。第一颜色通道、第二颜色通道和第三颜色通道分别为红色(r)通道、绿色(g)通道和蓝色(b)通道。亮度信道、第一色差信道和第二色差信道分别为y通道、u通道和v通道。在yuv颜色空间中,y通道和u通道、v通道是分离的;y代表亮度,uv代表色差,u和v是构成彩色的两个分量。

图8为本公开一实施例提供的一种卷积神经网络的训练方法的示意性流程图。如图8所示,本公开实施例提供的卷积神经网络的训练方法可以包括以下操作:

操作s30:初始化卷积神经网络;

操作s31:获取第一图像;

操作s32:利用第一图像对初始化后的卷积神经网络进行训练;

操作s33:通过损失函数计算卷积神经网络的参数的损失值;

操作s34:根据损失值对卷积神经网络的参数进行修正,以得到训练好的卷积神经网络。

例如,损失函数包括权重偏置比(l1)损失函数,还可以进一步包括内容损失函数和风格损失函数。

例如,卷积神经网络为上述神经网络实施例中的第一卷积神经网络。卷积神经网络可以包括第一子网络、第二子网络和第三子网络。第一子网络、第二子网络和第三子网络分别包括多个卷积层,卷积层包括多个卷积核和多个偏置,卷积神经网络的参数包括该多个卷积核和多个偏置。

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

例如,操作s33可以包括:根据多个卷积核和多个偏置通过l1损失函数计算卷积神经网络的参数的权重偏置比损失值。

例如,损失值包括权重偏置比损失值。

例如,在一个示例中,第二子网络包括第一标准上采样层和第一标准下采样层,第三子网络包括第二标准上采样层和第二标准下采样层。第一标准下采样层用于替代第二子网络中最初的第一卷积层,第一标准上采样层用于替代第二子网络中最后的第一卷积层;第二标准下采样层用于替代第三子网络中最初的第一卷积层,第二标准上采样层用于替代第三子网络中最后的第一卷积层。

例如,操作s32可以包括如下的操作s321-s323:

操作s321:将第一图像的第一颜色通道的数据信息、第二颜色通道的数据信息和第三颜色通道的数据信息转换为第一中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息;

操作s322:通过第一子网络、第二子网络和第三子网络分别对第一中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息进行风格迁移处理,以生成第二中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息;

操作s323:将第二中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息转换为第二图像的第一颜色通道的数据信息、第二颜色通道的数据信息和第三颜色通道的数据信息。

例如,操作s33可以包括操作s331~s333:

操作s331:分别提取第一图像的第一卷积特征、第二图像的第一卷积特征和第二卷积特征以及第三图像的第二卷积特征;

操作s332:根据第一图像的第一卷积特征和第二图像的第一卷积特征通过内容损失函数计算卷积神经网络的参数的内容损失值;

操作s333:根据第二图像的第二卷积特征和第三图像的第二卷积特征通过风格损失函数计算卷积神经网络的参数的风格损失值。

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

例如,操作s34可以包括:根据损失值分别对第一子网络的参数、第二子网络的参数和第三子网络的参数进行修正,以得到训练好的卷积神经网络。

需要说明的是,关于第一子网络、第二子网络、第三子网络、第一图像、第一中间图像、第二中间图像、第二图像、第三图像、损失值的计算公式等的详细说明可以参考神经网络的实施例中的相关描述,重复之处不再赘述。

图9为本公开一实施例提供的一种图像处理方法的示意性流程图。如图9所示,本公开实施例提供的图像处理方法可以包括以下操作:

操作s70:获取原始图像;

操作s72:将原始图像输入至生成神经网络;

操作s74:使用生成神经网络对原始图像进行风格迁移处理,以生成输出图像。

例如,生成神经网络包括根据上述任一所述的卷积神经网络的训练方法所训练得到的卷积神经网络。本公开实施例提供的图像处理方法可以通过生成神经网络对原始图像进行风格迁移处理,不但可以实现较佳的风格迁移效果,而且能够提高处理速度,具有更好、更广泛的应用前景。

例如,原始图像可以为各种类型的图像。原始图像例如可以为人物图像、动植物图像或风景图像等。

例如,原始图像可以通过图像采集设备获取。图像采集设备例如可以是智能手机的摄像头、平板电脑的摄像头、个人计算机的摄像头、数码照相机的镜头、或者甚至可以是网络摄像头。

例如,输出图像为经过生成网络处理之后的图像,其可以包括原始图像的内容特征和风格图像的风格特征。风格图像可以为各种艺术大师(例如莫奈、梵高、毕加索等)的名画等。需要说明的是,风格图像可以为神经网络实施例中的第三图像。

图10a为一种原始图像的示意图,图10b为一种风格图像的示意图,图10c为根据本公开一实施例提供的一种图像处理方法处理得到的输出图像的示意图。例如,如图10a所示,原始图像可以为用户拍摄的照片。风格图像可以为一幅浮世绘版画,例如,图10b所示的图为神奈川冲浪里。图10c所示的图像为经过本公开实施例提供的图像处理方法处理后得到的输出图像,其具有原始图像的内容特征和风格图像的风格特征。

例如,输出图像与原始图像可以具有相同的分辨率,也可以具有不同的分辨率。

例如,在一个示例中,操作s72可以包括以下操作:

操作s721:将原始图像转换为第一中间图像;

操作s722:将第一中间图像输入至生成神经网络。

例如,原始图像具有第一颜色通道、第二颜色通道和第三颜色通道。第一中间图像具有亮度信道、第一色差信道和第二色差信道。操作s721可以包括:对原始图像的第一颜色通道、第二颜色通道和第三颜色通道的数据信息进行转换,以生成第一中间图像的亮度信道、第一色差信道和第二色差信道的数据信息。

例如,原始图像为rgb格式的图像,第一中间图像为yuv格式的图像。第一颜色通道、第二颜色通道和第三颜色通道分别为红色(r)通道、绿色(g)通道和蓝色(b)通道。亮度信道、第一色差信道和第二色差信道分别为y通道、u通道和v通道。在yuv颜色空间中,y通道和u通道、v通道是分离的。y代表亮度,uv代表色差,u和v是构成彩色的两个分量。

例如,在操作s721中,通过第一转换矩阵将原始图像的r通道、g通道和b通道的数据转换为第一中间图像的y通道、u通道和v通道的数据。第一转换矩阵的转换公式可以表示为:

y1=0.30r1+0.59g1+0.11b1

u1=0.493·(0.70r1-0.59g1-0.11b1)

v1=0.877·(-0.30r1-0.59g1-0.11b1)

其中,y1、u1和v1分别表示第一中间图像的亮度信息、第一色度信息和第二色度信息;r1、g1和b1分别表示原始图像的红色信息、绿色信息和蓝色信息。

例如,生成神经网络可以包括第一子网络、第二子网络和第三子网络。第一子网络用于对y通道的数据信息进行处理,第二子网络用于对u通道的数据信息进行处理,第三子网络用于对v通道的数据信息进行处理。也就是说,本公开实施例提供的图像处理方法可以对第一中间图像的不同通道分别单独处理,从而减小生成神经网络的模型,进一步提高处理速度,增加图像处理的灵活性。

例如,第一子网络、第二子网络或第三子网络可以分别包括多个第一卷积层、多个第一池化层、多个复合层和多个实例归一化层。第二子网络或第三子网络可以省略一些复合层或实例归一化层等。

需要说明的是,关于卷积神经网络的具体结构的详细说明可以参考神经网络的实施例中关于第一卷积神经网络的描述,重复之处在此不再赘述。

例如,yuv格式可以包括yuv444、yuv420以及yuv422等格式。yuv444、yuv420以及yuv422等格式的主要区别在于u通道和v通道的数据的采样方式和存储方式。

假设,图像中的4个像素点表示为:

[y0u0v0][y1u1v1][y2u2v2][y3u3v3]

在图像处理过程中,存放或处理该4个像素点的数据流为:

y0u0v0y1u1v1y2u2v2y3u3v3。

映射出的像素点表示为:

[y0u0v0][y1u1v1][y2u2v2][y3u3v3]

即映射出的像素点为原始的像素点。

例如,yuv420格式表示每一行像素中,只有一种色度信息(第一色度信息u或第二色度信息v),且第一色度信息u或第二色度信息v以1/2的频率抽样存储。在图像处理过程中,相邻的行处理不同的色度信息。

假设图像中的两行8个像素点表示为:

[y0u0v0][y1u1v1][y2u2v2][y3u3v3]

[y4u4v4][y5u5v5][y6u6v6][y7u7v7]

在图像处理过程中,存放或处理该8个像素点的数据流为:

y0u0y1y2u2y3

y4v4y5y6v6y7

在第一行像素中,只有第一色度信息u;在第二行像素中,只有第二色度信息v。

映射出的像素点表示为:

[y0u0v4][y1u0v4][y2u2v6][y3u2v6]

[y4u0v4][y5u0v4][y6u2v6][y7u2v6]

综上,每一行中相邻的4个像素点在存放或处理时仅占用6个字节,相比yuv444(4个像素点需要12个字节)的采样格式,yuv420格式减小了处理和存储的像素点的数据量。尽管映射出的像素点与原始像素点略有不同,但这些不同在人眼的感觉中不会引起明显的变化。

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

例如,生成神经网络包括第一子网络、第二子网络和第三子网络,且生成神经网络为神经网络实施例中的第一卷积神经网络。第一子网络、第二子网络和第三子网络的构造可以相同,也可以不相同。

例如,在第一示例中,第一中间图像采用yuv444的图像格式。如图11a所示,第一子网络101、第二子网络102和第三子网络103的构造相同。下面以第一子网络101为例进行说明。例如,第一子网络101包括五个第一卷积层(第一卷积层c11、第一卷积层c12、第一卷积层c13、第一卷积层c14和第一卷积层c15)、两个第一池化层(第一池化层p11和第一池化层p12)、两个复合层(复合层m11和复合层m12)和四个实例归一化层(实例归一化层n11、实例归一化层n12、实例归一化层n13和实例归一化层n14)。

例如,在第一示例中,如图11a所示,操作s74包括:分别使用第一子网络101、第二子网络102和第三子网络103处理第一中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息,以生成第二中间图像;以及将第二中间图像转换为输出图像。

例如,在第二示例中,第一中间图像采用yuv420的图像格式。在操作s721中,可以将原始图像在yuv颜色空间上进行处理,以使得第一中间图像采用yuv420的图像格式,从而减小u通道和v通道的尺寸,进而减小生成神经网络中卷积核的数量。

例如,在第二示例中,第二子网络包括第一标准上采样层和第一标准下采样层,第一标准下采样层用于替代第一卷积神经网络中最初的第一卷积层、第一池化层和实例归一化层,第一标准上采样层用于替代第一卷积神经网络中最后的第一卷积层、复合层和实例归一化层;第三子网络包括第二标准上采样层和第二标准下采样层,第二标准下采样层用于替代第一卷积神经网络中最初的第一卷积层、第一池化层和实例归一化层,第二标准上采样层用于替代第一卷积神经网络中最后的第一卷积层、复合层和实例归一化层。

例如,如图11b所示,在第二示例中,第一子网络101'可以与第一示例中的第一子网络101的构造相同。

例如,如图11b所示,第二子网络102'和第三子网络103'的构造相同。下面以第二子网络102'为例进行说明。例如,第二子网络102'包括一个第一标准下采样层sd1、一个第一标准上采样层su1、三个第一卷积层(第一卷积层c22、第一卷积层c23和第一卷积层c24)、一个第一池化层(第一池化层p22)、一个复合层(复合层m21)以及两个实例归一化层(实例归一化层n22和实例归一化层n23)。

例如,与第一示例相比,在第二示例中,第一标准下采样层sd1替代了最初的一个第一卷积层、一个第一池化层和一个实例归一化层,第一标准上采样层su1替代了最后的第一卷积层、第一池化层和实例归一化层。由此,生成神经网络的网络模型尺寸被减小。

例如,如图11a和11b所示,在第二子网络102'中,第一标准下采样层sd1替代了最初的第一卷积层c21、一个第一池化层p21和一个实例归一化层n21;第一标准上采样层su1替代了最后的第一卷积层c25、复合层m22和实例归一化层n24。

例如,第二子网络102'中省略了处理u通道最高分辨率的第一卷积层,第三子网络103'中省略了处理v通道最高分辨率的第一卷积层。从而,该图像处理方法可以进一步提高图像处理速度。

例如,第一标准下采样层sd1和第一标准上采样层su1分别用于对u通道的数据信息进行下采样和上采样。第二标准下采样层sd2和第二标准上采样层su2分别用于对v通道的数据信息进行下采样和上采样。

例如,第一标准下采样层sd1和第二标准下采样层sd2的结构和采样因子可以相同,也可以不同。第一标准上采样层su1和第二标准上采样层su2的结构和采样因子可以相同,也可以不同。对此不作具体限制。

例如,若第一中间图像采用yuv420的图像格式,第一标准下采样层sd1和第二标准下采样层sd2的结构和下采样因子相同,第一标准上采样层su1和第二标准上采样层su2的结构和上采样因子也相同。从而,第二子网络102'和第三子网络103'的构造相同。

例如,在第二示例中,如图11b所示,操作s74包括:分别使用第一子网络101'、第二子网络102'和第三子网络103'处理第一中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息,以生成第二中间图像;以及将第二中间图像转换为输出图像。

例如,输出图像为rgb格式的图像,第二中间图像为yuv格式的图像。

例如,在将第二中间图像转换为输出图像的操作中,通过第二转换矩阵将第二中间图像转换为输出图像。第二转换矩阵的转换公式可以表示如下;

其中,y2、u2和v2分别表示第二中间图像的亮度信息、第一色度信息和第二色度信息;r2、g2和b2分别表示输出图像的红色信息、绿色信息和蓝色信息。

例如,第二中间图像为第一中间图像通过生成神经网络处理之后得到的图像。若生成神经网络包括实例归一化层,则第二中间图像的像素的灰度值的范围为[-1,1],在将第二中间图像转换为输出图像的操作时还包括:将第二中间图像的y通道、u通道和v通道的数据信息转换为输出图像的r通道、g通道和b通道的数据信息;以及将输出图像的像素的灰度值转换到[0,255]范围内。

例如,如图11a和11b所示,生成神经网络可以不包括平坦化层、全连接层以及分类器。

图12为本公开一实施例提供的一种图像处理装置的示例性框图。例如,如图12所示,本公开实施例提供的图像处理装置包括生成神经网络模块80。生成神经网络模块80用于对原始图像进行风格迁移处理,以生成输出图像。

例如,生成神经网络模块80可以包括生成神经网络,且生成神经网络包括根据上述任一项所述的卷积神经网络的训练方法所训练得到的卷积神经网络。

本公开实施例提供的图像处理装置通过生成神经网络对原始图像进行风格转移处理,提高图像风格迁移和图像融合效果,在处理效果和处理速度等方面得以兼顾,具有更好、更广泛的应用前景。

例如,如图12所示,图像处理装置还包括第一转换模块82。第一转换模块82包括上述神经网络中的第一转换矩阵。第一转换矩阵用于将原始图像转换为第一中间图像。

例如,原始图像具有第一颜色通道、第二颜色通道和第三颜色通道,第一中间图像具有亮度信道、第一色差信道和第二色差信道。第一转换矩阵可以用于将原始图像的第一颜色通道、第二颜色通道和第三颜色通道的数据信息转换为第一中间图像的亮度信道、第一色差信道和第二色差信道的数据信息。

例如,生成神经网络可以包括第一子网络、第二子网络和第三子网络。第一子网络、第二子网络和第三子网络分别用于处理第一中间图像的亮度信道的数据信息、第一色差信道的数据信息和第二色差信道的数据信息,以生成第二中间图像。

例如,如图12所示,图像处理装置还包括第二转换模块84。第二转换模块84包括上述神经网络中的第二转换矩阵。第二转换矩阵可以用于将第二中间图像转换为输出图像。

例如,如图11a和图11b所示,第一转换矩阵用于接收原始图像,并将原始图像转换为第一中间图像。第一转换矩阵输出的第一中间图像被输入至生成神经网络模块80。生成神经网络模块80用于对第一中间图像进行风格迁移处理,以生成第二中间图像。第二转换矩阵用于接收生成神经网络模块80输出的第二中间图像,并将第二中间图像转换为输出图像然后输出。该输出图像即作为图像处理装置的最终输出。该输出图像具有原始图像的内容特征和另一图像(例如,艺术大师的油画等)的风格特征。

需要说明的是,关于原始图像、第一中间图像、第二中间图像、输出图像、生成神经网络、第一转换矩阵和第二转换矩阵的转换公式等的详细说明可以参考图像处理方法的实施例中的相关描述,重复之处不再赘述。

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

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

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

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

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

例如,在存储器75上可以存储一个或多个第一计算机指令和一个或多个第二计算机指令,处理器70可以运行所述第一计算机指令和所述第二计算机指令,以实现各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据,例如风格图像、以及应用程序使用和/或产生的各种数据等。

例如,第一计算机指令被处理器70执行时可以执行根据上文所述的图像处理方法中的一个或多个步骤。

例如,第二计算机指令被处理器70执行时可以执行根据上文所述的卷积神经网络的训练方法中的一个或多个步骤。

例如,关于图像处理方法的处理过程的详细说明可以参考图像处理方法的实施例中的相关描述,关于卷积神经网络的训练方法的训练过程的详细说明可以参考卷积神经网络的训练方法的实施例中的相关描述,重复之处不再赘述。

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

例如,该存储介质可以应用于上述图像处理装置中,例如,其可以为图像处理装置中的存储器75。

例如,关于存储介质的说明可以参考图像处理装置的实施例中对于存储器75的描述,重复之处不再赘述。

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

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

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

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

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