Towards Ultra-Resolution Neural Style Transfer via Thumbnail Instance Normalization
碎碎念:毕设打算做风格迁移的,然而没有接触过这方面,记录一下qwq
Abstract
基于现有的风格迁移框架处理高分辨率有以下缺点:
- 内存成本
- 笔触过小
针对上述两点问题,本文提出Ultra-Resolution Style Transfer(URST)框架
。
针对内存问题,URST
提出:
- 将图像划分为patch
- 提出
Thumbnail Instance Normalization(TIN)
执行基于patch的风格迁移。TIN
可提取缩略图特征的归一化统计信息,并应用于patch,保证了不同patch间的风格一致性
基于本文实验,总结URST
有以下优点:
- 将输入图像切割为patch,同时采用
TIN
技术,实现任意分辨率的风格迁移 - 得益于笔触感知损失
stroke perceptual loss
在扩大笔触URST
在超高分辨率上优于现有的SOTA
方法 URST
易于嵌入现有的风格迁移算法方法中,无需训练即可提高性能
Introduction
随着深度学习的发展,风格迁移已取得了显著的成功。然而这些工作极少涉及到高分辨率的风格迁移。在自然场景中,超高分辨率图像常出现在大型海报、摄影作品和超高清视频(例如8K)中。在设计超高分辨率图像时,主要有两个需要攻克的问题:
- 超高分辨率图像处理时的内存成本可能超过GPU内存
- 在超高分辨率的结果中,较小的笔触尺寸可能会导致不令人满意的纹理密度
针对内存问题,现有方法主要采用轻量级网络架构(Jing et al. 2020)
、模型修剪(An et al. 2020)
、知识蒸馏(Wang et al. 2020)
来降低内存成本。然而现有的方法大多治标不治本。
![](/assets/blank.gif)
针对笔触较小的问题,现如今广泛的使用方法是增大笔触尺寸,现有方法大致分为两类:使用大型风格图像进行训练或推理(Jing et al. 2019; Li et al. 2017b; Zhang and Dana 2018)
,扩大风格迁移网络的感受野。然而这些方法大多需要额外的推理时间和内存,不适合超高分辨率的风格迁移。
![](/assets/blank.gif)
本文提出针对超高分辨率的风格迁移框架(URST)
,步骤简述如下:
- 采用patch而非完整的图像作为输入,使得在有限的内存资源下处理任意高分辨率图像成为可能
- 用
TIN
代替original instance normalization (IN)
,以确保不同patch间的风格一致性 - 提出笔触感知损失作为神经风格迁移的辅助损失,激励风格迁移网络保持大笔触
Related Work
Neural Style Transfer
受卷积神经网络的启发,Gatys, Ecker, and Bethge 2016
首次提出基于CNN
的风格迁移算法。为加速神经风格迁移,Johnson, Alahi, and Fei-Fei 2016
和Ulyanov et al. 2016
采用训练前馈网络以学习特定的艺术风格。近年来,为提高风格迁移的效率,研究人员提出多种风格迁移(Chen et al. 2017; Dumoulin, Shlens, and Kudlur 2017; Li et al. 2017a; Zhang and Dana 2018)
和任意风格迁移(Guetal.2018;HuangandBelongie2017;Dengetal.2020;Luetal.2019;Shengetal.2018;Yaoetal.2019)
。目前神经风格迁移已取得很大的进展,但由于巨大的内存成本和较小的笔触尺寸,超高分辨率的风格迁移仍具有挑战性。
High-ResolutionNeuralStyleTransfer
限制高分辨率风格迁移的主要因素即是GPU内存。Anetal.2020
提出ArtNet
,即从GoogLeNet
修剪出的用于神经风格迁移的轻量级网络;Jingetal.2020
开发了一种基于MobileNet
的轻量级网络,与原有的VGG
编码器相比,降低了计算复杂性;Wangetal.2020
提出了基于蒸馏的方法,即使用预先训练的VGG19
作为老师,小型Encoder
作为学生,虽然减少了内存消耗,但在处理超高分辨率图像时仍会耗尽GPU内存。
Stroke Size Control in Neural Style Transfer
笔触尺寸是一个重要的感知因素,与风格迁移结果的质量高度相关。通常,带有大笔触的风格化结果往往比小笔触的风格化结果具有更好的外观。Gatysetal.2017
首次提出笔触尺寸与损失网络的感受野相关,此团队提出了由粗到细的方法,用大笔触生成风格化的结果。Wangetal.2017
提出分层网络来扩大笔触的大小,并用增加尺度的多次损失对其进行训练。Jingetal.2018
提出了具有多个笔触分支的特定风格网络MSG-Net
,通过缩放风格图像来控制笔触大小。然而这些笔触尺寸控制方法主要针对普通图像分辨率(例如1000*1000像素)下的风格迁移而设计的,难以应用于高分辨率图像。
Proposed Method
Overall Architecture
URST
由三个关键设计模块组成:
- 基于patch的风格迁移,将高成本的风格迁移任务划分为多个低成本的基于patch的风格迁移
TIN
可提取缩略图特征的归一化统计信息,并应用于patch,保证了不同patch间的风格一致性- 定义笔触感知损失
(stroke perceptual loss)
,激励风格迁移网络保持较大的笔触尺寸
![](/assets/blank.gif)
URST
步骤简述如下:
以超高分辨率的内容图像IcI_cIc作为输入,URST
可分为三个阶段:划分 dividing
、风格化stylization
、合成assembling
。
- 在划分阶段,首先为内容图像IcI_cIc生成一个缩略图ItI_tIt(下采样),然后将IcI_cIc划分为patch,即{Ipi∣i=1,2,……,N}\{I^i_p|i=1,2,……,N \}{Ipi∣i=1,2,……,N}
- 在风格化阶段,ItI_tIt首先送入风格迁移网络中手机归一化统计数据,然后利用这些归一化统计数据对patch进行风格化处理,得到风格化的patch,即{I^pi∣i=1,2,……,N}\{\widehat{I}^i_p|i=1,2,……,N \}{Ipi∣i=1,2,……,N}。注意,此处的风格迁移网络并不是特定的,现有的基于
IN
的方法都可作为风格迁移网络 - 在合成阶段,将所有风格化的patch合成一个超高分辨率的风格化图像I^c\widehat{I}_cIc
由于风格化阶段使用的风格迁移网络不同,因而损失函数不同。为方便,本文统一将损失定义为原损失Lo\mathcal{L}_oLo。
在训练过程中,首先在风格化的缩略图上计算原损失Lo\mathcal{L}_oLo。此外,URST
还引入了辅助损失,即笔触感知损失stroke perceptual loss
,以提高超高分辨率风格迁移的质量。其核心思想是针对风格化patch,即I^p\widehat{I}_pIp,和上采样的patch,即I^tp\widehat{I}_{tp}Itp(来源于风格化缩略图I^t\widehat{I}_tIt),之间的感知差异的惩罚。因此,I^tp\widehat{I}_{tp}Itp的梯度流是分离的。
Patch-wise Style Transfer
为处理超高分辨率图像,本文提出基于patch的风格迁移。针对给定的超高分辨率的内容图像IcI_cIc,本文使用一个步长为SSS的K∗KK*KK∗K的像素滑动窗口,将IcI_cIc划分为多个重叠的patch,即{Ipi∣i=1,2,……,N}\{I^i_p|i=1,2,……,N \}{Ipi∣i=1,2,……,N}。考虑到GPU的内存资源有限,这些patch将分批送入网络中。经过风格化循环,可得到风格化patch,即{I^pi∣i=1,2,……,N}\{\widehat{I}^i_p|i=1,2,……,N \}{Ipi∣i=1,2,……,N}。最后,删去重叠区域合成完整的图像I^c\widehat{I}_cIc。
与现有的方法相比,基于patch的风格迁移可以灵活处理任意高分辨率图像,也可嵌入现有的风格迁移方法中,例如AdaIN
、WCT
和LinearWCT
。
然而由于每个patch计算的单个归一化统计数据,风格化后的patch其风格显然是不一致的。因此本文提出缩略图实例归一化TIN
解决此问题。
Thumbnail Instance Normalization
IN
是神经风格迁移中使用广泛的归一化。给定输入张量x∈RN×C×H×Wx\in \R^{N\times C \times H \times W}x∈RN×C×H×W,IN
计算如下:
IN(x)=γ(x−μ(x)σ(x))+βIN(x)=\gamma\Big(\frac{x-\mu(x)}{\sigma(x)}\Big)+\betaIN(x)=γ(σ(x)x−μ(x))+β
其中,μ(x),σ(x)∈RN×C\mu(x),\sigma(x) \in\R^{N\times C }μ(x),σ(x)∈RN×C是channel-wise
统计,γ,β∈RC\gamma,\beta \in\R^Cγ,β∈RC是可训练仿射参数。
然而,由于基于IN
的网络生成的风格化patch在风格上是不一致的,IN
并不适合基于patch的风格迁移。Figure 4
可说明该问题,即风格不一致的根本原因在于每个patch计算出的单个归一化统计量不同。
![](/assets/blank.gif)
基于上述分析,本文提出基于IN
的简单变体,即缩略图实例归一化TIN
。针对给定的patch x∈RN×C×H×Wx\in \R^{N\times C \times H \times W}x∈RN×C×H×W和缩略图t∈RN×C×Ht×Wtt\in \R^{N\times C \times H_t \times W_t}t∈RN×C×Ht×Wt,TIN
计算如下:
TIN(x,t)=γ(x−μ(t)σ(t))+βTIN(x,t)=\gamma\Big(\frac{x-\mu(t)}{\sigma(t)}\Big)+\betaTIN(x,t)=γ(σ(t)x−μ(t))+β
其中,μ(t),σ(t)∈RN×C\mu(t),\sigma(t) \in\R^{N\times C }μ(t),σ(t)∈RN×C是输入缩略图ttt的channel-wise
的均值和标准偏差。
通过此方式,TIN
可确保不同的patch其风格一致性。
同样,IW
是基于二阶统计量(即协方差矩阵)的标准化方法,被广泛用于神经风格迁移方法中。本文基于IW
也提出了TIW
,将在补充材料对此进行说明。
Stroke Perceptual Loss
基于所提出的TIN
,本文提出扩大笔触尺寸的辅助损失,称为笔触感知损失stroke perceptual loss
:
Lsp(I^p,I^tp)=∥Fl(I^p)−Fl(I^tp)∥2\mathcal{L}_{sp}(\widehat{I}_p,\widehat{I}_{tp})=\lVert \mathcal{F}_l(\widehat{I}_p)-\mathcal{F}_l(\widehat{I}_{tp}) \rVert^2Lsp(Ip,Itp)=∥Fl(Ip)−Fl(Itp)∥2
其中,Fl\mathcal{F}_lFl是VGG
网络中该层的输出特征图;I^p\widehat{I}_pIp是小笔触的风格化patch,I^tp\widehat{I}_{tp}Itp是风格化patch,采用大笔触,裁剪并上采样于风格化的缩略图I^t\widehat{I}_tIt。
由于TIN
,输入对(I^p,I^tp)(\widehat{I}_p,\widehat{I}_{tp})(Ip,Itp)有相同的内容和风格,但是笔触尺寸不同。因此,Lsp\mathcal{L}_{sp}Lsp主要可以测量笔触感知差异,即优化此损失可激励风格迁移网络生成与目标I^tp\widehat{I}_{tp}Itp等大的笔触。
Total Loss
总损失函数表现如下:
L=Lo+λLsp\mathcal{L}=\mathcal{L}_o+\lambda\mathcal{L}_{sp}L=Lo+λLsp
其中,λ\lambdaλ是平衡Lo\mathcal{L}_oLo和Lsp\mathcal{L}_{sp}Lsp的权重。在本文实验中,λ\lambdaλ默认为1.01.01.0。
Towards Ultra-Resolution Neural Style Transfer via Thumbnail Instance Normalization相关推荐
- 吴恩达老师深度学习视频课笔记:神经风格迁移(neural style transfer)
什么是神经风格迁移(neural style transfer):如下图,Content为原始拍摄的图像,Style为一种风格图像.如果用Style来重新创造Content照片,神经风 ...
- 神经风格迁移(Neural Style Transfer)程序实现(Caffe)
前言 上次的博客写了神经风格迁移(Neural Style Transfer)程序实现(Keras),使用keras的一个好处就是api简单,能够快速部署模型,使用很方便.出于学习目的,这次又使用ca ...
- 神经风格迁移(Neural Style Transfer)程序实现(Keras)
前言 以前翻译了神经风格迁移的论文:一个艺术风格化的神经网络算法(A Neural Algorithm of Artistic Style)(译),这篇文章中会给出其基于Keras的实现.github ...
- 吴恩达深度学习课程deeplearning.ai课程作业:Class 4 Week 4 Art Generation with Neural Style Transfer
吴恩达deeplearning.ai课程作业,自己写的答案. 补充说明: 1. 评论中总有人问为什么直接复制这些notebook运行不了?请不要直接复制粘贴,不可能运行通过的,这个只是notebook ...
- 15.深度学习练习:Deep Learning Art: Neural Style Transfer
本文节选自吴恩达老师<深度学习专项课程>编程作业,在此表示感谢. 课程链接:https://www.deeplearning.ai/deep-learning-specialization ...
- 吴恩达深度学习4.4练习_Convolutional Neural Networks_Art Generation with Neural Style Transfer
转载自吴恩达老师深度学习课程作业notebook Deep Learning & Art: Neural Style Transfer Welcome to the second assign ...
- Neural Style Transfer 神经风格迁移详解
Neural Style Transfer 神经风格迁移详解 今天和大家分享一个比较有意思的东西,Neural Style Transfer,神经风格迁移,简单说就是我们将一张普通的照片赋予它艺术作品 ...
- Neural Style Transfer: A Review
这篇是风格转移方面的综述,文中总结了多种风格转移的方法.因为18年看过很多风格转移方面的论文,因此翻译这篇综述. Gatys等人的开创性工作.通过分离和重新组合图像内容和风格,展示了卷积神经网络(CN ...
- 风格迁移综述Neural Style Transfer: A Review
浙江大学和亚利桑那州立大学的几位研究者在 arXiv 上发布了一篇「神经风格迁移(Neural Style Transfer)」的概述论文,对当前神经网络风格迁移技术的研究.应用和难题进行了全面的总结 ...
最新文章
- RDKit | 基于随机森林(RF)的机器学习模型预测hERG阻断剂活性
- Spring Boot实战pdf
- transform插件
- Convert.ToInt32()与int.Parse()的区别
- PostMan居然要被干掉了!IDEA这款插件太实用了…
- 2021-11-23日win10更新bug:共享打印机无法连接的修复
- android gui工具,搞机助手简约易用的安卓ADB GUI玩机工具箱
- 成功杀掉病毒kpvtctr和hkvaciq
- ts540服务器安装系统,ThinkServer TS540 OS安装手册 V1.3.pdf
- 密西根州立大学计算机qs分数,密歇根州立大学有哪些专业_专业排名(QS世界排名)...
- 中国为何与诺贝尔奖无缘?
- VC/MFC 编程经验
- tyvj 1463 智商问题
- 30人围成一圈的小游戏。c语言
- VC++玩转Native Wifi API
- 【应急响应】黑客入侵应急分析手工排查
- 网易云音乐歌单详情列表爬虫破解
- gethostbyname函数用域名或主机名获取IP地址
- 【山头斜照却相迎】初入计算机学习计划推荐
- sql语句中的or用法(及与and和in区别)