【Neural Style Transfer】 Fast Neural Style
上个月撰写了《深度学习与艺术——画风迁移》(Neural Style)的文章,
而今我们便转向探讨Fast Neural Style这一主题,
其名称中最突出的特点就是"快",
即即便进一步优化网络架构设计,
理论上也是完全具备实现落地应用的可能性。
0 回顾Neural Style
在探讨Fast Neural Style之前,我们有必要回顾一下Neural Style的概念。实际上通过Gatys的一幅图即可理解Neural Style的作用(如图所示)。而Gatys提出的这种艺术风格迁移的方法与传统的做法不同。这种方法依赖于卷积神经网络来实现不同图像间的风格转移从而让观众产生一种视觉上的‘错觉’。

1 Fast Neural Style
Fast Neural Style论文:Perceptual Metrics for Real-Time Style Transfer and Super-Resolution
1.1 Fast Neural Style的两个任务
Fast Neural Style主要包含两个核心任务:风格迁移功能与经典Neural Style一致,并通过其迁移机制将A类特征融入到B类对象中以生成新的图片C;同时该方法还实现了单张超分辨率目标即通过该过程实现由低分辨率输入到高分辨率输出的效果。Fast Neural Style体系由两部分构成:第一部分是基于深度学习设计的图像是特征提取器即图1中的image transformation network f_W;第二部分则是一个损失函数模块对应于\phi这一组件共同构成了整个模型架构

1.2 Image Transform Net
不同的任务输入图像输出图像的尺寸是不同的
不同的任务输入图像输出图像的尺寸是不同的
Downsampling下采样和Upsampleing上采样
1.3 Loss Network
特征重构损失函数
风格重构损失函数
l^{\phi,j}_{style}(\hat{y},y) = ||G_j^{\phi}(\hat{y})-G_j^{\phi}({y})||^2_2 \tag4
1.4 Simple Loss Functions
除了建立感知函数外,在低层像素数据的基础上制定了两个较为简单的损失指标——一个是基于像素的损失(Pixel Loss),另一个是依赖于图像全变分的正则化方法(Total Variation Regularization)。
2 实验 Experiments
众所周知,Fast Neural Style主要包含两个核心任务:风格迁移任务和单图像超分辨率任务;具体进行了哪些方面的实验?
2.1 风格迁移任务 Style Transform
为了生成一张既包含A图像内容(记为图像y_c)又具备B图像风格(记为图像y_s)的目标图像C(即我们的生成结果\hat{y}),我们需要确保该过程必须满足以下两项要求:一是使目标图象同时具备指定内容与风格;二是设计合理的损失函数来实现对特征重构l_{feat}与风格重构l_{style}的综合优化。此外,在这一过程中作者还巧妙地引入了总变分正则项l_{TV}作为辅助手段。具体而言,在优化过程中我们旨在最小化如下表达式:
\hat{y}= \mathop {\arg\min}_{y} \ \ \lambda_cl_{feat}^{\phi,j}(y,y_c)+\lambda_sl_{style}^{\phi,J}(y,y_s)+\lambda_{TV}l_{TV}(y) \tag5
其中,在本研究中引入了三个关键超参数λ_c、λ_s和λ_{TV}。这些超参数的具体取值及作用机制将在后续章节详细讨论。从图中可以看出,在风格迁移模型经过充分训练后具备了对图像语义理解的能力。例如,在图中背景区域呈现了高度杂乱的状态难以辨识清晰特征;相比之下, 前景中的物体表现出较好的识别效果—值得注意的是, 在这一过程中, 作者提出了相应的改进措施。研究表明, 在处理人类及动物等特定类别时, 预训练的VGGNet-16模型能够提取出具有判别性的特征。

在处理速度上Fast Neural Style也具有显著的优势。完成512x512像素图像的风格转换可实现约20帧每秒(FPS),这也是图像风格迁移的可能性延伸至实际应用和视频领域。
2.2 单张图像的高分辨率任务 Single-Image Super-Resolution
在单张图像的高分辨率中,我们的目标即是从一张输入较低分辨率的图像中产出相应的高分辨率图像.值得注意的是,此问题并不存在统一解决方案,因为所采用的不同生成方法会导致输出结果呈现出差异.

我们只关注与x4倍和x8倍 的分辨率问题,因为更大的分辨率要有更多的语义推理。为了克服低分辨率转高分辨率的问题,我们不再使用逐像素的损失,而使用特征重构损失l_{feat}。用于评价超分辨率问题的传统评估度量是——PSNR和SSIM ,虽然我们的网络并不旨在这两个评估度量都取得优异效果,但这也从侧面反映了我们训练像素损失和重构损失的可靠性。
在超分辨率的任务里,我们用了SRCNN 的三层卷积层网络,用于在ILSVRC 2013检测数据集的33×33块上最小化每个像素的损失。SRCNN没有训练×8倍的超分辨率,所以我们只能在×4倍上对其进行评估。和其他方法相比,我们训练的特征重构模型在重构尖锐的边缘和具体的细节表现了良好的性能,虽然有可能会在PSNR和SSIM上有一定的影响。
