本发明涉及图像分割和图像识别技术领域,尤其涉及一种基于cnn的图像风格化方法及系统。
背景技术:
神经网络最早是上世纪40、50年代被提出的,网络模型灵感来自于动物的中枢神经系统。在机器学习相关领域,它被用于依赖大量的输入数据来计算和估计近似目标函数。在上世纪70、80年代后向传播算法被提出之后,神经网络大红大火了一段时间,但90年代后逐渐被svm之类的算法抢了风头,随后应用更为广泛的模型是svm、adaboost、随机森林等等,究其原因在于神经网络结构复杂,参数太多难以训练。2006年,深度学习的概念第一次被提出,神经网络又重新回到学术界的视野内,但还是没有受到太多的关注度。直到2012年,深度的网络学习alexnet模型以大幅优势赢下计算机视觉领域的竞赛ilsvrs2012,从此,深度学习和神经网络一发不可收拾,一直跑在学术的最前沿。
过去的几年时间,深度学习在解决计算机视觉领域问题,例如物体识别、图像分割、图像风格化上表现非常出色。此外在语音识别和自然语言处理等方面也有突破性的发展。其中,在深度学习里的各种神经网络模型当中,卷积神经网络(cnn)是研究最为深入,应用最为广泛的。cnn通过训练能够得出原始图像的有效表征,从原始像素中识别视觉上的规律,近年来在深度学习领域提出的前沿研究结果都基于cnn的模型结构。lenet-5是最早确立的现代cnn结构,之后依次提出的alexnet、vgg、googlenet、resnet,在发展方向上看就是网络层数不断加深,参数增加,网络结构变得更加复杂。目前来看,cnn的发展脚步还未停止,发展空间依然很大。
2015年的时候某位教授提出把gram矩阵和vgg网络的中间层输出结合,以代表图像的风格信息,并且借由gram矩阵计算的损失函数训练图片,从而实现图片之间的风格迁移。此后,传统图像风格迁移研究的重心开始与cnn相结合,两年时间内有数十篇论文从训练效率和图像生成质量等方向做了更深入的研究。之前在社交平台上火了一段时间的图像处理软件prisma便是这个领域的研究成果与实际生活相结合的一种体现。其中,该技术方案是使用了两个网络模型,包括图像转换网络和损失计算网络。图像转换网络的结构包括3个卷积层,5个残差模块,3个卷积层,其中不使用池化层,而是用卷积和反卷积来实现下采样和上采样。损失计算网络则是现成的已经训练好的vgg16网络。在损失函数的计算上,损失函数由内容损失和风格损失组成。内容损失函数都是由生成图片在vgg网络高层上的特征激活值与实际内容图像在当前层上的特征激活值之间的距离差平方。风格损失函数是由生成图片在vgg网络每层上的特征与实际风格图像在当前层上的风格特征之间的距离差平方的累加之和。根据上述的损失函数去反复训练图像转换网络,最终得到训练好的网络,输入一张图片,输出经过风格转换之后的图片。但是该技术方案的缺点在于训练的时间过长,计算资源巨大,训练得到的图像转换网络效果一般,在训练某些图片峰哥时得到的结果可能会出现重影,导致输出图片失真。
技术实现要素:
本发明的目的在于克服现有技术的不足,本发明提供了一种基于cnn的图像风格化方法及系统,能够将任意艺术作品图片上的风格信息迁移到另一张实际图片当中,使得普通人制作出大师级别的绘画作品成为可能。
为了解决上述问题,本发明提出了一种基于cnn的图像风格化方法,所述方法包括:
获取艺术图画作品的风格图像及现实图片;
对图像进行预处理,获得各尺度大小的风格图像和内容图像;
分别对风格图像和内容图像进行图像分割,获取它们各自的多通道语义图像;
构建多尺度风格化卷积神经网络,利用网络输入包含多个尺寸的内容图,得到输出图;
获取风格图像和内容图像、多通道语义图像及输出图,利用深度卷积神经网络计算出输出图与风格图像之间的风格损失值及输出图与内容图像之间的内容损失值;
结合风格损失值和内容损失值,利用误差反向传播算法对多尺度风格化卷积神经网络进行反向传播处理,对其进行更新网络权重;
获取现实图片,裁剪成512*512大小,输入到多尺度风格化卷积神经网络中,得到风格化后的目标图像。
优选地,所述对图像进行预处理的步骤具体包括:
将获取的全部图像裁剪成512*512大小;
运用双三次插值进行图像缩放,将这些图像分别按照2倍、4倍、8倍、16倍缩放,获得处理后的图像。
优选地,所述分别对风格图像和内容图像进行图像分割的具体步骤包括:
将提前训练好的条件随机场域的循环神经网络中最大值池化层去掉,并且将前一层的输出层归一化到0~1之间,得到各个分类的概率图;其中,每个值是该像素点属于某个分类的概率;
取平均概率最大的前五个分类的概率图组成5通道的语义图;
将所有待处理图像输入到将所有待处理图像输入到去掉最大值池化层的条件随机场域的循环神经网络中,得到相对应语义图。
优选地,所述构建多尺度风格化卷积神经网络,利用网络输入包含多个尺寸的内容图的步骤具体包括:构建多尺度风格化深度卷积神经网络;
利用同一张图片的5个不同尺度输入网络,包括:512*512(原大小),256*256,128*128,64*64,32*32;
将32*32的输入图片经过两次卷积处理,获得特征图后进行一次反卷积上采样处理,并对特征图的大小放大一倍处理;
利用上一步骤得到的特征图与64*64的输入图片经过两次卷积处理得到的64*64特征图进行深度上的拼接处理,获得拼接后的特征图,并对其进行两次卷积处理、再反卷积处理,并对该特征图大小放大为128*128;
利用上一步骤得到的特征图与128*128的输入图片经过两次卷积处理得到的特征图进行深度上的拼接处理,获得拼接后的特征图,并对其进行两次卷积处理、再反卷积处理,并对该特征图大小放大为256*256;
利用上一步骤得到的特征图与256*256的输入图片经过两次卷积处理得到的特征图进行深度上的拼接处理,获得拼接后的特征图,并对其进行两次卷积处理、再反卷积处理,并对该特征图大小放大为512*512;
利用上一步骤得到的特征图与512*512的输入图片经过两次卷积处理得到的特征图进行深度上的拼接处理,获得拼接后的特征图,并对其进行三次卷积处理,获得输出图片。
优选地,所述多尺度风格化深度卷积神经网络中卷积处理依次包含了一次批标准化层处理,一次线性整流层激活,一次3*3的卷积,再重复经过一次批标准化层处理,一次线性整流层激活,一次3*3的卷积,最后和输入做一个加运算,得到卷积处理的输出。优选地,所述多尺度风格化卷积神经网络中拼接处理是输入中的小尺寸特征图在经过反卷积后尺寸放大一倍,然后经过一次批标准化层处理,最后与经过批标准化层处理的大尺寸输入特征图进行深度上的拼接。
优选地,所述利用已经经过物体检测识别训练的深度卷积神经网络计算出输出图与风格图像之间的风格损失值及输出图与内容图像之间的内容损失值的步骤包括:
将内容图像xc输入到多尺度风格化卷积神经网络中得到输出图为x,将风格图语义图定义为ms,内容图像的语义图为mx,将输出图x、风格图像xs、内容图像xc输入到已经经过物体检测识别训练的深度卷积神经网络中;
在深度卷积神经网络的第一层中,输出图x、风格图像xs及内容图像xc各自对应的特征图为φl(x)、φl(xs)、φl(xc),
用一个5*5的窗口,步长为1遍历φl(x),每个窗口作为一个小块,数学符号为ψi(φl(x)),i=1,2,3,...,p,一共有p个小块;同样地,用5*5窗口步长为1的遍历φl(xs),得到风格图像的特征图的所有小块,数学符号为ψi(φl(xs));通过图像块匹配算法找到风格图像中与ψi(φl(x))最匹配的小块为ψnn(i)(φl(xs)),公式表示如下:
其中,
计算ψi(φl(x))的格拉姆矩阵为g(ψi(φl(x))),以及计算ψnn(i)(φl(xs))的格拉姆矩阵为g(ψnn(i)(φl(xs))),通过两个格拉姆矩阵计算风格损失
其中,格拉姆矩阵的计算方式如下,第i,j的位置为第i,j通道的像素对应相乘求和:
其中,k是某层卷积后特征图的像素个数,i,分别是该卷积层输出的特征图个数(卷积核个数),gij计算的是第i个特征图和第j个特征图的内积。
计算深度卷积神经网络中线性整流层1_2层、线性整流层2_2层、线性整流层3_3层、线性整流层4_3层的风格损失
其中,l是网络的层数,wl是该层计算的损失的权重。
计算在线性整流层2_2层输出图和内容图像之间的损失ec,其计算公式为:
优选地,当进行最后一步骤之前,对更新网络权重后的多尺度风格化卷积神经网络进行训练,训练时以10张图为一批次,训练迭代10000轮,采用adam梯度下降方法训练优化网络。
相应地,本发明实施例还提供一种基于cnn的图像风格化系统,该系统包括:
采集模块,用于获取艺术图画作品的风格图像及现实图片;
预处理模块,用于对图像进行预处理,获得各尺度大小的风格图像和内容图像;
分割模块,用于对风格图像和内容图像进行图像分割;
构建模块,用于构建多尺度风格化卷积神经网络,利用网络输入包含多个尺寸的内容图;
计算模块,用于计算输出图与风格图像之间的风格损失值及输出图与内容图像之间的内容损失值;
更新模块,用于对多尺度风格化卷积神经网络进行反向传播处理,对其进行更新网络权重;
输出模块,用于获取现实图片,裁剪成512*512大小,输入到多尺度风格化卷积神经网络中,得到风格化后的目标图像。
优选地,预处理模块包括:
裁剪单元,用于将获取的全部图像裁剪成512*512大小;
缩放处理单元,用于将图像分别按照2倍、4倍、8倍、16倍缩放。
在本发明实施例中,能够将任意艺术作品图片上的风格信息迁移到另一张实际图片当中,使得普通人制作出大师级别的绘画作品成为可能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例的一种基于cnn的图像风格化方法的流程示意图;
图2是本发明实施例的多尺度的深度卷积神经网络的结构示意图;
图3是本发明实施例的多尺度的深度卷积神经网络中卷积处理的流程示意图;
图4是本发明实施例的多尺度的深度间接神经网络中拼接处理的流程示意图;
图5是本发明实施例的一种基于cnn的图像风格化系统的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例的基于cnn的图像风格化方法的流程示意图,如图1所示,该方法包括:
s1,获取艺术图画作品的风格图像及现实图片;
s2,对图像进行预处理,获得各尺度大小的风格图像和内容图像;
s3,分别对风格图像和内容图像进行图像分割,获取它们各自的多通道语义图像;
s4,构建多尺度风格化卷积神经网络,利用网络输入包含多个尺寸的内容图,得到输出图;
s5,获取风格图像和内容图像、多通道语义图像及输出图,利用已经经过物体检测识别训练的深度卷积神经网络计算出输出图与风格图像之间的风格损失值及输出图与内容图像之间的内容损失值;
s6,结合风格损失值和内容损失值,利用误差反向传播算法对多尺度风格化卷积神经网络进行反向传播处理,对其进行更新网络权重;
s7,获取现实图片,裁剪成512*512大小,输入到多尺度风格化卷积神经网络中,得到风格化后的目标图像。
其中,s2中所述的预处理包括:
s21,将获取的全部图像裁剪成512*512大小;
s22,运用双三次插值进行图像缩放,将这些图像分别按照2倍、4倍、8倍、16倍缩放,获得处理后的图像。
进一步地,s3包括:
s31,将提前训练好的条件随机场域的循环神经网络中最大值池化层去掉,并且将前一层的输出层归一化到0~1之间,得到各个分类的概率图;其中,每个值是该像素点属于某个分类的概率;
s32,取平均概率最大的前五个分类的概率图组成5通道的语义图;
s33,将所有待处理图像输入到s31的网络中,得到相对应语义图。
进一步地,如图2所示,s4包括:s41,构建多尺度风格化深度卷积神经网络;
s42,利用同一张图片的5个不同尺度输入网络,包括:512*512(原大小),256*256,128*128,64*64,32*32;
s43,将32*32的输入图片经过两次卷积处理,获得特征图后进行一次反卷积上采样处理,并对特征图的大小放大一倍处理;
s44,利用s43得到的特征图与64*64的输入图片经过两次卷积处理得到的64*64特征图进行深度上的拼接处理,获得拼接后的特征图,并对其进行两次卷积处理、再反卷积处理,并对该特征图大小放大为128*128;
s45,利用s44得到的特征图与128*128的输入图片经过两次卷积处理得到的特征图进行深度上的拼接处理,获得拼接后的特征图,并对其进行两次卷积处理、再反卷积处理,并对该特征图大小放大为256*256;
s46,利用s45得到的特征图与256*256的输入图片经过两次卷积处理得到的特征图进行深度上的拼接处理,获得拼接后的特征图,并对其进行两次卷积处理、再反卷积处理,并对该特征图大小放大为512*512;
s47,利用s46得到的特征图与512*512的输入图片经过两次卷积处理得到的特征图进行深度上的拼接处理,获得拼接后的特征图,并对其进行三次卷积处理,获得输出图片。
进一步地,如图3所示,s4中所述多尺度风格化深度卷积神经网络中卷积处理依次包含了一次批标准化层处理,一次线性整流层激活,一次3*3的卷积,再重复经过一次批标准化层处理,一次线性整流层激活,一次3*3的卷积,最后和输入做一个加运算,得到卷积处理的输出。
具体地,如图4所示,s4中所述多尺度风格化卷积神经网络中拼接处理是输入中的小尺寸特征图在经过反卷积后尺寸放大一倍,然后经过一次批标准化层处理,最后与经过批标准化层处理的大尺寸输入特征图进行深度上的拼接。
进一步地,s5包括:
s51,将内容图像xc输入到多尺度风格化卷积神经网络中得到输出图为x,将风格图语义图定义为ms,内容图像的语义图为mx,将输出图x、风格图像xs、内容图像xc输入到已经经过物体检测识别训练的深度卷积神经网络中;
s52,在深度卷积神经网络的第一层中,输出图x、风格图像xs及内容图像xc各自对应的特征图为φl(x)、φl(xs)、φl(xc),
s53,用一个5*5的窗口,步长为1遍历φl(x),每个窗口作为一个小块,数学符号为ψi(φl(x)),i=1,2,3,...,p,一共有p个小块;同样地,用5*5窗口步长为1的遍历φl(xs),得到风格图像的特征图的所有小块,数学符号为ψi(φl(xs));通过图像块匹配算法找到风格图像中与ψi(φl(x))最匹配的小块为ψnn(i)(φl(xs)),公式表示如下:
其中,
s54,计算ψi(φl(x))的格拉姆矩阵为g(ψi(φl(x))),以及计算ψnn(i)(φl(xs))的格拉姆矩阵为g(ψnn(i)(φl(xs))),通过两个格拉姆矩阵计算风格损失
其中,格拉姆矩阵的计算方式如下,第i,j的位置为第i,j通道的像素对应相乘求和:
其中,k是某层卷积后特征图的像素个数,i,分别是该卷积层输出的特征图个数(卷积核个数),gij计算的是第i个特征图和第j个特征图的内积。
s55,计算深度卷积神经网络中线性整流层1_2层、线性整流层2_2层、线性整流层3_3层、线性整流层4_3层的风格损失
其中,l是网络的层数,wl是该层计算的损失的权重。
s56,计算在线性整流层2_2层输出图和内容图像之间的损失ec,其计算公式为:
进一步地,当进行s7之前,对s6中更新网络权重后的多尺度风格化卷积神经网络进行训练,训练时以10张图为一批次,训练迭代10000轮,采用adam梯度下降方法训练优化网络。
相应地,本发明实施例还提供一种基于cnn的图像风格化系统,如图5所示,该系统包括:
采集模块,用于获取艺术图画作品的风格图像及现实图片;
预处理模块,用于对图像进行预处理,获得各尺度大小的风格图像和内容图像;
分割模块,用于对风格图像和内容图像进行图像分割;
构建模块,用于构建多尺度风格化卷积神经网络,利用网络输入包含多个尺寸的内容图;
计算模块,用于计算输出图与风格图像之间的风格损失值及输出图与内容图像之间的内容损失值;
更新模块,用于对多尺度风格化卷积神经网络进行反向传播处理,对其进行更新网络权重;
输出模块,用于获取现实图片,裁剪成512*512大小,输入到多尺度风格化卷积神经网络中,得到风格化后的目标图像。
进一步地,预处理模块包括:
裁剪单元,用于将获取的全部图像裁剪成512*512大小;
缩放处理单元,用于将图像分别按照2倍、4倍、8倍、16倍缩放。
本发明的系统实施例中各功能模块的功能可参见本发明方法实施例中的流程处理,这里不再赘述。
在本发明实施例中,能够将任意艺术作品图片上的风格信息迁移到另一张实际图片当中,使得普通人制作出大师级别的绘画作品成为可能。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。
另外,以上对本发明实施例所提供的一种基于cnn的图像风格化方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。