图像处理:图像风格迁移(Style Transfer)

本文翻译自:《A brief introduction to Neural Style Transfer

在图像风格迁移中,涉及两张图像,内容图像和风格(样式)图像。我们需要将风格图像的样式应用到内容图像上。

为此我们使用预训练好的模型 VGG-16n

 

卷积网络工作原理

有一张图像和一个卷积核(滤波器),将卷积核作用于图像,卷积核同时作用到的像素点求加权和并输出,再加一个非线性激活函数 sigmoid 、 ReLU(整流线性单元) 或 tanh(双曲正切).

上图中蓝色为原图,绿色为卷积核,输出为特征图(feature map),激活函数如下图:

 

卷积网络中,输入图像与多个卷积核作用,产生多个特征图;这些特征图再与多个卷积核作用产生更多特征图:

上图还有最大池化层,用于降维。池化过程中,将2x2的窗口作用于输入,窗口覆盖的最大值作为每个输出。

下图显示了不同层提取出的不同特征图,从边缘特征,到五官特征,再到面部特征

低层的特征图提取细节特征例如线条或块;当层数增加时,输出特征变复杂了。可以直观认为,低层提取出线条和块,高层会依靠这些细节来构建更复杂的特征。因此我们得出结论:卷积网络得到的是特征的分层表示,这正是风格迁移的基础。

 

风格迁移实现

在风格迁移中,并不需要训练神经网络,相反我们随机初始化一张图像,通过修改图像像素值来优化损失函数。在训练网络时更新的是权重和偏置,在风格迁移中保证权重和偏置不变,只修改像素值。

损失函数的定义

内容损失(Content loss)

可直观的认为,具有相似内容的图像往往在卷积网络的高层具有相似的特征表示,P^l  和F^l  分别表示表示原图和待生成的图像在第l层特征图的表示。

风格(样式)损失(Style loss)

A^l 和G^l  分别表示表示原图和待生成的图像在第l层特征图的表示,Nl   是特征图的数量,Ml 是铺平后的特征图大小,wl 是第l层的权重。

对风格而言,主要想捕捉的是图像的画风样式,所以选择低层。这里使用了gram矩阵,向量X的gram矩阵是X.X^T,使用gram是因为主要想捕捉统计信息。

总变差损失(Total Loss)

alpha 与 beta 是内容损失和风格损失的权重,损失反映了最终目标,让输出图像在内容上与内容图像接近,风格上模仿样式图像。简单梯度下降、Adam 或L-BFGS都可以优化损失函数。

迁移结果如图:

  

风格迁移更多使用场景详见:Style Transfer Guide

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值