Neural Style Transfer解读与实现

本文深入探讨了Gatysetal.于2015年提出的艺术风格迁移算法,该算法能够将任意图片转换为特定的艺术风格。通过平衡内容图像与风格图像的特征,利用CNN的深层特征映射重构图像内容,同时利用所有层的特征映射相关性表达风格,从而实现内容与风格的融合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文 [Gatys et al., 2015. A Neural Algorithm of Artistic Style]

给出一张content image(比如照片),再给出一个style image,可以把照片画风转换成style image的风格

主要原理是取一个在content image和style image间的balance
用一张白噪声图像不断学习,生成兼顾content和style的新图像

content image:
在CNN的layer中,低层layer主要关注pixel级别的特征,而高层layer更关注image的content,因此论文中考虑用CNN高层layer的feature map来reconstruct图像的content

style image:
论文中说用所有layer的feature map的correlation来表示style
有一种特征同时又有另一种特征就是相关,比如一个feature map表示它有条纹,另一个feature map表示有橙色,取correlation就会兼顾这些特征,如果取较低层的layer,就会包含比较local的style

由于CNN表示的content和style是分开的,所以可以从一个图像中提取content,另一个图像中提取style,然后mix可以生成新的图像,这样既保持了原来图像中的content,又会有art图像的style。

用object recognition的feature map来获得content和style,模型用VGG-19

既然要保持content和style的balance,就需要学习一个loss function
L=αLcontent+βLstyleL = \alpha L_{content} + \beta L_{style}L=αLcontent+βLstyle

接下来就是如何计算LcontentL_{content}LcontentLstyleL_{style}Lstyle

LcontentL_{content}Lcontent
lll层layer的content image的feature map用FijlF_{ij}^{l}Fijl表示,generated image的feature map用PijlP_{ij}^lPijl表示

这个是VGG-19 model
在这里插入图片描述

然后,这里i代表i层的feature map,generated image刚开始是白噪声图像
在这里插入图片描述

因为relu的关系,back propagation如下
在这里插入图片描述

LstyleL_{style}Lstyle

前面说了style image是各个layer的correlation,即各个layer feature map的inner product
这里k是location,也就是遍历feature map,i,j是layer lll中的各feature map
G称为Gram matrix
在这里插入图片描述

layer lll的style distance也就是content image的Gram matrix和generated image的Gram matrix的mean squared distance

公式中NlN_{l}Nl代表layer lll中的filter数,MlM_{l}Ml代表layer lll中feature map的size
可以写成nC2×nH2×nW2n_{C}^{2} \times n_{H}^{2} \times n_{W}^{2}nC2×nH2×nW2
C: channels H: height W: width
在这里插入图片描述

总结出来是这样
在这里插入图片描述

对下面这幅照片进行风格转换:
使用两种不同的style image和不同的iteration
2个style一个纹理复杂一些,一个偏抽象派

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5000次的iteration和1000次差别已经不大,分析cost可以看出在500次前后的时候就已经差不多收敛了
而且可以看出纹理较复杂的style image会对原图中的噪声较为敏感,抽象派的效果就看不出太多噪声
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值