Pytorch:图像风格迁移

Pytorch: 图像风格迁移

Copyright: Jingmin Wei, Pattern Recognition and Intelligent System, School of Artificial and Intelligence, Huazhong University of Science and Technology

Pytorch教程专栏链接


本教程不商用,仅供学习和参考交流使用,如需转载,请联系本人。

Reference

Image Style Transfer Using Convolutional Neural Networks

A Neural Algorithm of Artistic Style

Perceptual Losses for Real-Time Style Transfer and Super-Resolution

图像风格迁移的主要任务是将图像的风格迁移到内容图像上,使得内容图像也具有一定的风格。

风格图像可以是艺术家的一些作品,包含艺术家的风格,也可以是经典的具有特色的照片,具有鲜明色彩。而内容图像通常来自现实世界。

利用风格迁移可以将内容图像处理为想要的风格。

常用的图像风格迁移方式
固定风格固定内容的普通风格迁移

参考文章:

Image Style Transfer Using Convolutional Neural Networks

A Neural Algorithm of Artistic Style

其思路为,把图片当做可以训练的变量,通过不断优化图片的像素值,降低其与内容图片的内容差异,并降低其与风格图片的风格差异,通过对卷积网络的多次迭代训练,能够生成一幅具有特定风格的图像。并且内容与内容图片的内容一致,生成图片的风格与风格图片的风格一致。

基于 VGG16 网络中卷积层的图像风格迁移如下: a ⃗ \vec{a} a 为输入的风格图像, p ⃗ \vec{p} p 为输入的内容图像, x ⃗ \vec{x} x 则是表示有随机噪声生成的图像风格迁移后的图像。 L c o n t e n t \mathcal{L}_{content} Lcontent 表示图像的内容损失, L s t y l e \mathcal{L}_{style} Lstyle 表示图像的风格损失, α \alpha α β \beta β 分别表示内容损失权重和风格损失权重。

使用较深层次的卷积计算得到的特征映射能够较好地表示图像内容,而较浅层次的卷积计算得到的特征映射能够较好地表示图像的风格,基于此就能通过不同卷积层的特征映射来分别度量,目标图像在风格上,以及内容上和风格图像的差异。

两个图像的内容相似性度量主要是通过在 conv4_2 层上特征映射的相似性,作为内容损失

L c o n t e n t = 1 2 ∑ i , j ( F i j l − P i j l ) 2 \mathcal{L}_{content} = \frac{1}{2}\sum_{i,j}(F_{ij}^l-P_{ij}^l)^2 Lcontent=21i,j(FijlPijl)2

l l l 表示特征映射的层数, F F F P P P 分别是目标图像和诶荣图像在读音卷积层输出的特征映射。

两个图像的风格损失并不是直接通过特征映射来比较的,而是计算 Gram 矩阵先计算出图像的风格,在进行比较。计算特征映射的 Gram 矩阵则是先将其特征映射变换为一个列向量,而 Gram 矩阵则使用这个列向量乘以其转置获得,它能更好地表示图像的风格。所以输入风格图像 a ⃗ \vec{a} a 和目标图像 x ⃗ \vec{x} x 使用 A l A^l Al G l G^l Gl 分别表示它们在 l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值