yangshunde


可以画画啊!可以画画啊!可以画画啊! 对,有趣的事情需要讲三遍。 事情是这样的,通过python的深度学习算法包去训练计算机模仿世界名画的风格,然后应用到另一幅画中,不多说直接上图!


这个是世界名画”毕加索的自画像“(我也不懂什么是世界名画,但是我会google呀哈哈),以这张图片为模板,让计算机去学习这张图片的风格(至于怎么学习请参照这篇国外大牛的论文)应用到自己的这张图片上。

结果就变成下面这个样子了


咦,吓死宝宝了,不过好玩的东西当然要身先士卒啦! 接着由于距离开学也越来越近了,为了给广大新生营造一个良好的校园,噗!为了美化校园在新生心目中的形象学长真的不是有意要欺骗你们的。特意制作了下面的《梵高笔下的东华理工大学》,是不是没有听说过这个大学,的确她就是一个普通的二本学校不过这都不是重点。 左边的图片是梵高的《星空》作为模板,中间的图片是待转化的图片,右边的图片是结果

这是我们学校的内“湖”(池塘)

校园里的樱花广场(个人觉得这是我校最浪漫的地方了)

不多说,学校图书馆

“池塘”边的柳树

学校东大门

学校测绘楼

学校地学楼

为了便于观看,附上生成后的大图:








别看才区区七张图片,可是这让计算机运行了好长的时间,期间电脑死机两次!

好了广告打完了,下面是福利时间

在本地用keras搭建风格转移平台

1.相关依赖库的安装

# 命令行安装keras、h5py、tensorflow
pip3 install keras
pip3 install h5py
pip3 install tensorflow

如果tensorflowan命令行安装失败,可以在这里下载whl包Python Extension Packages for Windows(进入网址后ctrl+F输入tensorflow可以快速搜索)

2.配置运行环境

下载VGG16模型 放入如下目录当中

3.代码编写

from __future__ import print_function
from keras.preprocessing.image import load_img, img_to_array
from scipy.misc import imsave
import numpy as np
from scipy.optimize import fmin_l_bfgs_b
import time
import argparse

from keras.applications import vgg16
from keras import backend as K

parser = argparse.ArgumentParser(description=\'Neural style transfer with Keras.\')
parser.add_argument(\'base_image_path\', metavar=\'base\', type=str,
                    help=\'Path to the image to transform.\')
parser.add_argument(\'style_reference_image_path\', metavar=\'ref\', type=str,
                    help=\'Path to the style reference image.\')
parser.add_argument(\'result_prefix\', metavar=\'res_prefix\', type=str,
                    help=\'Prefix for the saved results.\')
parser.add_argument(\'--iter\', type=int, default=10, required=False,
                    help=\'Number of iterations to run.\')
parser.add_argument(\'--content_weight\', type=float, default=0.025, required=False,
                    help=\'Content weight.\')
parser.add_argument(\'--style_weight\', type=float, default=1.0, required=False,
                    help=\'Style weight.\')
parser.add_argument(\'--tv_weight\', type=float, default=1.0, required=False,
                    help=\'Total Variation weight.\')

args = parser.parse_args()
base_image_path = args.base_image_path
style_reference_image_path = args.style_reference_image_path
result_prefix = args.result_prefix
iterations = args.iter

# these are the weights of the different loss components
total_variation_weight = args.tv_weight
style_weight = args.style_weight
content_weight = args.content_weight

# dimensions of the generated picture.
width, height = load_img(base_image_path).size
img_nrows = 400
img_ncols = 

分类:

技术点:

相关文章:

  • 2022-03-05
  • 2021-05-31
  • 2021-12-18
  • 2021-06-02
  • 2021-08-13
  • 2021-12-24
猜你喜欢
  • 2021-07-19
  • 2021-07-31
  • 2022-01-05
  • 2021-11-09
  • 2021-12-18
  • 2021-12-10
  • 2021-12-17
相关资源
相似解决方案