VGG网络--实现图像的风格转化

VGG网络–实现图像的风格转化

一、网络结构

主要组成:
风格网络训练部分
图片风格转化部分

VGG网络--实现图像的风格转化_第1张图片

(1)图像转换网络fw:由权重w参数化的深度残差卷积神经网络。将输入图像x转化为对应输出的y^, 通过计算y^和目标图像yi的差异,利用随机训练梯度下降的方法来最小化加权组合的损失函数:

图像风格转换网络,由3个卷积和ReLU非线性层,5个残差块,3个转置卷积层以及最后一个产生输出图像的非线性tanh层组成。使用跨步和分段跨度卷积进行网内下采样和上采样。

(2)损失网络φ:衡量内容图片和风格图片利用特征重建和风格重建。为每个风格训练一个网络,输出图像是内容图像和风格样式的结合,而输入图像x是一个低分辨率的图像,输出图像是一个高分辨率图像,其中,需要根据超分辨率因子来训练网络。

二、代码文件介绍:

train_network.py :
主要功能是获取参数,并将参数赋给fast style transfer网络,也就是风格转化网络,训练出我们想要的风格。
fast_style_transfer.py :
构建风格转化网络,计算loss和生成风格转换后的一些图像。
vgg_network.py :
构建的一个vgg网络,在损失网络里面处理使用的。
stylize_image.py
风格转换的一个网络,利用我们已经训练好的风格网络,只需要输入想转换风格的一个内容图片,就可以获得风格转化后的图片。
transform.py
进行内容图片的风格转换。
utils.py
加载和保存图片等操作。

三、程序运行

(1)训练新的图片风格:
python train_network.py --style <风格图片所在目录> --train-path <训练网络的目录> --save-path <保存网络的目录>
下面的结果部分所示的3种样式的图像转换网络已经训练好包含在预训练风格网络目录中
另外如果想训练其他样式的图像风格转换网络可以在Microsoft COCO数据集中获取的80,000张训练图像上进行训练。
Microsoft COCO数据集下载: http://mscoco.org/
VGG19模型下载 http://www.vlfeat.org/matconvnet/models/beta16/imagene-vgg-verydeep -19.mat

(2)用已有的风格特征网络对新的内容图片进行风格转换:
python stylize_image.py --content <内容文件所在目录> --network-path <预训练风格网络的目录> --output-path <输出图片的目录>

四、结果

VGG网络--实现图像的风格转化_第2张图片 VGG网络--实现图像的风格转化_第3张图片 VGG网络--实现图像的风格转化_第4张图片 VGG网络--实现图像的风格转化_第5张图片

第一张是原图,其他几张是不同风格转化后的图片。

完整代码:
https://github.com/SinsoledadFairy/picture_style_transform

你可能感兴趣的:(VGG网络--实现图像的风格转化)