代码参考自:https://github.com/ckmarkoh/neuralart_tensorflow
算法来源 CVPR 2016 的文章 “Image Style Transfer Using Convolutional Neural Networks”。
主要是利用一个已经在ImageNet 上训练好的卷积神经网络 VGG-19。
再重新用VGG-19网络训练变量 随机噪声图像x(实际上它在该网络里是输入变量),算是一种巧妙的迁移学习。
算法框架如下:
算法代码如下:
'''
## NeuralArt
Implementation of [A Neural Algorithm of Artistic Style](http://arxiv.org/abs/1508.06576) by Tensorflow.
## Requirements
- [Tensorflow](http://www.tensorflow.org/)
- [VGG 19 model](https://drive.google.com/file/d/0B8QJdgMvQDrVU2cyZjFKU1RrLUU/view?usp=sharing)
'''
import tensorflow as tf
import numpy as np
import scipy.io
import scipy.misc
import os
IMAGE_W = 800
IMAGE_H = 600
CONTENT_IMG = './images/Taipei101.jpg'
STYLE_IMG = './images/StarryNight.jpg'
OUTOUT_DIR = './results'
OUTPUT_IMG = 'results.png'
VGG_MODEL = 'imagenet-vgg-verydeep-19.mat'
# 随机噪声与内容图像的比例
INI_NOISE_RATIO = 0.7
# 内容图像和风格图像的权重
CONTENT_STRENGTH = 1
STYLE_STRENGTH = 500
ITERATION = 5000
CONTENT_LAYERS =[('conv4_2',1.)]
STYLE_LAYERS=[('conv1_1',1.),('conv2_1',1.),('conv3_1',1.),('conv4_1',1.),('conv5_1',1.)]
MEAN_VALUES = np.array([123, 117, 104]).reshape((1,1,1,3))
def build_net(n_type, n_in, n_wb=None)