本发明涉及深度学习领域,具体涉及一种基于语义分割和深度学习的图片背景风格迁移方法。
背景技术:
基于神经网络的图像风格迁移在2015年由gatysetal.提出。gatys当时的论文创新点只有一个,但是对于风格迁移和图像纹理生成这个领域又具有非常重大的意义:论文提出了一种用深度学习来给纹理建模的方法。在这之前的科学家一直希望能找到一个使得纹理能够通过局部统计模型来描述的方法,而手动建模过于复杂且泛用性极差。gatys从物体识别相关领域的论文得到启发,发现vgg19网络可以被认为是许多局部特征识别器,并且经过实验验证之后发现这些特征识别器在风格迁移领域表现也非常好。
但是gatys的方法也有显而易见的问题和一些不足之处,最主要的就是原始方法的迁移速度非常慢,即使用2019年最顶级的gpu运行也需要将近二十分钟,在普通的cpu上甚至需要超过十二小时才能完成一张512*512大小的图片的风格迁移。
还有一点比较不足的地方在于gatys的方法进行迁移的时候就只能对整张图片进行迁移,无法做到对某个特征的目标进行风格迁移而保持其他对象不变。
技术实现要素:
针对现有技术中存在的不足,本发明提供一种基于语义分割和深度学习的图片背景风格迁移方法。本发明的目的是在进行图像风格迁移时只对图像背景进行迁移,用以突出主体,增强图像的艺术表现力。
为了实现上述技术目的,本发明的技术方案是,一种基于语义分割和深度学习的图片背景风格迁移方法,包括以下步骤:
步骤(1)、选择内容图片和风格图片并进行图片预处理;
选取一张主体明确的图片作为内容图片,采用u-net网络对内容图片进行语义分割,其中u-net的骨干网络选择为resnet-18。将网络的输出类别数设置为2,定义分类所需要的softmax函数:
式中,ak(x)表示每个像素点对应特征通道的得分,k为类的数量,pk(x)是对类k的对像素点分类的结果,softmax函数用于在神经网络计算完成之后对计算结果进行分类输出,在通过softmax之前,数据的表现为一个一维的激活数据体,经过softmax之后输出的结果将会映射到相应的类别上,并形成主体和背景的不同标记。分割出主体后使用全图减去主体,得到一张去除主体而仅留下背景的内容图片;
选取需要获得其背景风格的风格图片,为了使得效果比较好,一般选取风格明显且强烈的图片作为风格图片;
最后将内容图片和风格图片裁切为相同尺寸,获得预处理后的内图片和风格图片。
步骤(2)、将预处理后的内容图片和风格图片分别输入至resnet-50网络中,并且在最后一层池化层输出之后将内容图片和风格图片输出结果
将
步骤(3)、将风格图片输入至vgg-19网络中,并且将风格图片标记为
通过内积操作,可以得到输入图像的风格表示。通过构造与给定输入图像的风格表示相匹配的图像,来可视化这些构建在网络不同层上的风格特征空间捕获的信息。通过对
al和gl分别
总的损失可以表示为
式中,wl是各层对总损失贡献的权值。关于层l中的活动,el的导数可以通过分析计算得出:
el相对于
步骤(4)、将内容图片输入至vgg-19网络中,并且将内容图片标记为
这个损失相对于层l中激活数据体的导数等于
从中可以使用标准误差反向传播计算相对于图像
步骤(5)、为了将风格图片
其中α和β分别是内容和风格重建的权重因子。
步骤(6)、重复步骤(5)进行10次迭代计算,使得步骤(2)得到的输出图片
步骤(7)、最后将分割的到的主体放回经过风格迁移的背景上。
本发明有益效果如下:
(1)速度极快,相比起传统的风格迁移算法,本算法不从白噪声图片开始进行梯度下降,而是由内容图片和风格图片直接计算的到一张相对比较接近结果的图片,而且使用了更快速精简的resnet网络,经测试速度提高了上百倍,并且没有明显的质量下降;
(2)可扩展性强,可以通过加深resnet的深度来达到提取更深层次的图像风格和内容信息,算法运算时间会有少许的增加;
(3)对局部区域进行风格迁移,保留了图像主体内容,以达到突出主体,增强图像艺术表现力的效果;
(4)采用基于pytorch的高级框架fastai开发,代码易读性和可移植性强。
附图说明
图1是本发明的系统流程图;
图2是本发明实施例采用的一个内容肖像图像;
图3是本发明肖像风格迁移方法的结果。
具体实施方式
以下结合附图对本发明进行进一步描述。
如图1所示,本发明的图片背景风格迁移方法,包括以下步骤:
步骤(1)、选择内容图片和风格图片并进行图片预处理;
选取一张主体明确的图片作为内容图片,如肖像,主题明确的静物图片,采用u-net网络对内容图片进行语义分割,其中u-net的骨干网络选择为resnet-18,因为分割任务较为简单,所以使用浅层的网络即可完成任务。将网络的输出类别数设置为2,定义分类所需要的softmax函数:
式中,ak(x)表示每个像素点对应特征通道的得分,k为类的数量,pk(x)是对类k的对像素点分类的结果,softmax函数用于在神经网络计算完成之后对计算结果进行分类输出,在通过softmax之前,数据的表现为一个一维的激活数据体,经过softmax之后输出的结果将会映射到相应的类别上,并形成主体和背景的不同标记。分割出主体后使用全图减去主体,得到一张去除主体而仅留下背景的内容图片;
选取需要获得其背景风格的风格图片,为了使得效果比较好,一般选取风格明显且强烈的图片作为风格图片,比如印象派和抽象派的油画;
最后将内容图片和风格图片裁切为相同尺寸,获得预处理后的内图片和风格图片。
步骤(2)、将预处理后的内容图片和风格图片分别输入至resnet-50网络中,并且在最后一层池化层输出之后将内容图片和风格图片输出结果
将
步骤(3)、将风格图片输入至vgg-19网络中,并且将风格图片标记为
通过内积操作,可以得到输入图像的风格表示,它捕获了输入图像的纹理信息,而不是全局排列,因为内积操作破坏了原图像的空间相关性。通过构造与给定输入图像的风格表示相匹配的图像,来可视化这些构建在网络不同层上的风格特征空间捕获的信息。通过对
al和gl分别
总的损失可以表示为
式中,wl是各层对总损失贡献的权值。关于层l中的活动,el的导数可以通过分析计算得出:
el相对于
步骤(4)、将内容图片输入至vgg-19网络中,并且将内容图片标记为
这个损失相对于层l中激活数据体的导数等于
从中可以使用标准误差反向传播计算相对于图像
步骤(5)、为了将风格图片
其中α和β分别是内容和风格重建的权重因子。
图2是本发明实施例采用的一个内容肖像图像;
图3是本发明肖像风格迁移方法的结果。
1.一种基于语义分割和深度学习的图片背景风格迁移方法,其特征在于,包括以下步骤:
步骤(1)、选择内容图片和风格图片并进行图片预处理;
步骤(2)、将预处理后的内容图片和风格图片分别输入至resnet-50网络中,并且在最后一层池化层输出之后将内容图片和风格图片输出结果
将
步骤(3)、将风格图片输入至vgg-19网络中,获得风格约束;
步骤(4)、将内容图片输入至vgg-19网络中,获得内容约束;
步骤(5)、为了将风格图片
其中α和β分别是内容和风格重建的权重因子;
步骤(6)、重复步骤(5)进行10次迭代计算,使得步骤(2)得到的输出图片
步骤(7)、最后将分割的到的主体放回经过风格迁移的背景上。
2.根据权利要求1所述的一种基于语义分割和深度学习的图片背景风格迁移方法,其特征在于,步骤(1)具体方法如下:
选取一张主体明确的图片作为内容图片,采用u-net网络对内容图片进行语义分割,其中u-net的骨干网络选择为resnet-18;将网络的输出类别数设置为2,定义分类所需要的softmax函数:
式中,ak(x)表示每个像素点对应特征通道的得分,k为类的数量,pk(x)是对类k的对像素点分类的结果,softmax函数用于在神经网络计算完成之后对计算结果进行分类输出,在通过softmax之前,数据的表现为一个一维的激活数据体,经过softmax之后输出的结果将会映射到相应的类别上,并形成主体和背景的不同标记;分割出主体后使用全图减去主体,得到一张去除主体而仅留下背景的内容图片;
选取需要获得其背景风格的风格图片,为了使得效果比较好,一般选取风格明显且强烈的图片作为风格图片;
最后将内容图片和风格图片裁切为相同尺寸,获得预处理后的内图片和风格图片。
3.根据权利要求2所述的一种基于语义分割和深度学习的图片背景风格迁移方法,其特征在于,步骤(3)具体方法如下:
将风格图片输入至vgg-19网络中,并且将风格图片标记为
通过内积操作,可以得到输入图像的风格表示;通过构造与给定输入图像的风格表示相匹配的图像,来可视化这些构建在网络不同层上的风格特征空间捕获的信息;通过对
al和gl分别
总的损失可以表示为
式中,wl是各层对总损失贡献的权值;关于层l中的活动,el的导数可以通过分析计算得出:
el相对于
4.根据权利要求3所述的一种基于语义分割和深度学习的图片背景风格迁移方法,其特征在于,步骤(4)具体方法如下:
将内容图片输入至vgg-19网络中,并且将内容图片标记为
这个损失相对于层l中激活数据体的导数等于
从中可以使用标准误差反向传播计算相对于图像