基于卷积神经网络的图像风格迁移实现与开发

2021-05-28 12:38郭颖王佳新
现代计算机 2021年10期
关键词:卷积界面神经网络

郭颖,王佳新

(北方工业大学信息学院,北京100144)

0 引言

在神经网络之前,图像风格迁移的程序有一个共同的思路:分析某一种风格的图像,建立一个数学或者统计模型,再改变要做迁移的图像让它能更好地符合建立的模型。此类方法的缺点是:一个程序基本只能做某一种风格或者某一个场景,从而导致了基于传统风格迁移研究的局限性。2006年起,深度学习之父Hinton掀起了AI浪潮,至今仍是学术界与工业界的研究热点。对于图像风格迁移这一课题,Gatys等人[1]提出了如下思路:使用卷积神经网络有效分离图像的内容特征和图像的风格特征。一方面对于内容特征来说,模型通过预训练的VGG[2]模型提取其特征表示。另一方面对于风格特征来说,同样通过预训练的VGG[2]模型提取其特征表示,其次在其特性图上计算格拉姆矩阵,从而建模其风格表示。输入任意一张随机噪声图,可通过梯度下降法不断迭代改变图像的像素值,目标是其内容表示接近于内容图片的内容,其风格表示接近于风格图片的风格。也就是说,通过不断学习减小内容损失和风格损失,即可实现内容和风格的合成图像,从而达到“风格迁移”的目的。本文主要采用VGG19[3]分类网络,来实现图像风格迁移。

1 深度风格迁移模型介绍

1.1 网络结构

本文采用VGG网络结构。同AlexNet[4]相比,VGG采用连续多层的3×3卷积核来代替AlexNet中的(11×11、7×7、5×5)等较大卷积核。多层非线性层可以增加网络深度,从而能够学习到更复杂的模式,并且代价相对更小。对于给定的与输出有关的输入图片的局部大小,采用连续多层的小卷积核效果强于采用单一大的卷积核。在VGG中,使用3个3×3卷积核来代替7×7卷积核,使用2个3×3卷积核来代替5×5卷积核,这样做可以保证具有相同的与输出有关的输入图片的局部大小的条件下,增加网络的深度,捕捉更深层次的特征,在一定程度上提升神经网络的效果。VGG有VGG16和VGG19两种结构,两者本质上并没有区别,只是网络深度不一样。VGG16包含了16个隐藏层(13个卷积层和3个全连接层),VGG19包含了19个隐藏层(16个卷积层和3个全连接层)。VGG网络的结构非常一致,每一层都是使用的3×3的卷积和2×2的max pooling。此外,和原始分类网络相比,本文的VGG将max pooling换成了average pooling,略微提升结果视效。

1.2 图像内容提取

卷积神经网络[5-6]中的每一层都定义了一个非线性的过滤器组,其复杂性会随着在网络中所在层的位置而改变。所以一个给定的输入图片→x在VGG19网络的每一层的编码的过滤器是响应图片的。一个有Ni个不同的过滤器的层有Ni个特征图谱,每个图谱的大小Mi,Mi是特征图谱的长与宽的乘积。所以对于层L的响应可以被存储在矩阵中Fi中,Fi,j表示第i个过滤器在层L中的第j个位置的激活。为了可视化由不同层次编码的图片信息,采用对一个白噪声图片进行坡度下降来找到另外一张可以匹配原图的特征反应的图片。代表初始图像[11],代表处理后新的图像,令Fl和Pl分别是在l层中的特征表示。所以,二者间的残差平方和损失函数[8]为:

此函数表示对于提取内容的图片p,将该位置所代表的内容表示P,通过构造使得p在应位置的特征无限趋近于P,最终达到内容损失函数的最小结果。其倒数为:

任取一张图像X0,将其输入上述分类网络。其第l个卷积层的响应记为Xl,其尺寸是Hl×Wl×Nl。对于目标图像,同样送入该网络,可以得到该层响应。

若希望X0和内容相似,可以最小化如下二范数误差:

这一误差可以对本层响应的每一元素求导:

进一步,利用链式法则,可以求得误差对输入图像每一元素的导数。这一步骤就是神经网络经典的back-propagation方法。

1.3 图像风格提取

为从风格图像中得到想要的风格,使用固定的纹理信息空间来显示风格。该特征空间可以建立在任何卷积神经网络水平上处理的过滤器出口上,期望是接办输入图的空间扩展。这些特征间的相互联系是由Gram矩阵计算的,其中Gli,j是向量化特征图谱i和j在层l上的内积:

为了生成一个匹配给定图片的纹理,从一个白噪声图梯度下降,找到一张与原始图片的风格匹配的图片。这是通过最小化原始图片的Gram矩阵和待生成图片的Gram矩阵之间的平均方差做到的。→代表原始图像,→x代表生成的新图像,Al代表1层的风格,Gl代表l层相对于总体的损失所占的比率,为:

总风格损失函数是:

先引入一个Nl×Nl的特征矩阵Gl:

Gl由第l层的响应计算得出,消除了响应的位置信息,可以看做是对风格的描述。i,j位置的元素描述了第i通道响应和第j通道响应的相关性。

可以求得误差对本层响应的导数:

1.4 图像风格迁移

为生成混合了照片的内容和画作的风格的图片,共同最小化了白噪声在网络某一层到照片的内容表达的距离以及在VGG网络多层上到风格表达的距离。本文最小化的损失函数是:

2 移动应用实现与开发

2.1 图像风格迁移实现

为了获得输入图像的风格表示,本文使用了一个最初设计用于捕获纹理信息的特征空间。这个特征空间建立在网络每一层的分级响应之上。它由不同的分级响应在特征图的空间范围内的相关性组成(详见方法)。通过包括多层的特征相关性,本文得到一个固定的,多尺度的输入图像的表示,它捕捉其纹理信息,但不是全部信息。

图1 风格迁移结果图

在VGG的每个处理阶段,给定的输入图像被表示为一组滤镜图像。虽然不同的过滤器的数量增加沿处理层次,滤镜图像的大小减少了一些下采样机制(如最大池),导致在网络的每层单位的总数减少,内容重建。本文可以通过只知道网络在某一层的响应来重建输入图像,从而可视化VGG中不同处理阶段的信息。本文从建立在VGG层的不同子集上的风格表示重建输入图像。这样可以创建出与给定图像风格相匹配的图像,规模越来越大,同时丢弃场景的全局排列信息。

2.2 图像风格迁移开发

有了基础的图像风格迁移代码实现,本文开发了一款以图像风格迁移转换功能为主的集图像处理、社区分享等功能为一体的图片处理交流社区式App。

图2 软件功能结构图

2.3 软件创作界面展示

图3 创作相关界面展示

本文锁定了两款直接非常值得借鉴的图像处理软件分别是prisma和造画。造画是仿prisma的“国内版prisma”。在界面观感上和本尊存在着较大差距,功能和界面符合国内模式:“多”。整体上功能覆盖有余,美观简约不足。更有众多调色社交软件如MIX、Pinter-est、Snapseed。Snapseed在视觉上与前两款App相比有差距,胜在调色功能。MIX和Pinterest都是比较成熟的优质App,其产品瀑布流社区[9]的功能十分值得本文借鉴。于是本文在几款App的基础上进行了界面设计,简单易操作的创作界面以及丰富的社区交流界面。

图4 瀑布流式社区界面和发现界面

图5 消息通知界面

图6 用户个人界面

3 结语

本文旨在对基于卷积神经网络的图像风格迁移做基础的迁移效果实现,并在此基础上设计开发一款图像风格处理与社区交流为一体的App,本文开发的此款App旨在强化基于卷积神经网络的图像风格迁移效果,选取大量风格图片进行模型训练,让用户可以记录生活中很多美好的时刻并与自己喜欢的风格图片相结合,保留生活中每个美好画面。将记录下的点滴分享在社区平台上,找到志同道合的朋友。

整合更多功能,以契合更多需求:

(1)训练更多国画风格模型,让风格库更加丰富多样,开发新的国风风格;

(2)利用大数据技术[10],完善根据用户的偏好进行社区内容推荐功能;

(3)将训练后的各个风格应用在视频上,实现视频的风格迁移。

猜你喜欢
卷积界面神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
基于神经网络的船舶电力系统故障诊断方法
基于人工智能LSTM循环神经网络的学习成绩预测
不同截面类型钢管RPC界面粘结性能对比研究
基于图像处理与卷积神经网络的零件识别
MIV-PSO-BP神经网络用户热负荷预测
国企党委前置研究的“四个界面”
基于深度卷积网络与空洞卷积融合的人群计数
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
界面成立自媒体联盟深挖原生内容创造力