曾几何时,小学的我们上机课时最喜欢摆弄的就是 word 的艺术字,丑陋的效果并不能阻挡我们在每个角落塞进七彩的字体.......

“七彩”的艺术字

但是时代不同了,我们现在已经有了各种先进的 PS 软件,我们已经可以做出这样的艺术字:

各种PS艺术字

我想看到这里,很多人都觉得做一个设计师是多么的不容易,我感觉也是,那么我们能够更进一步,从而解放设计师的双手吗?(我用双手,成就你的梦想。--LOL blind monk)即我们可以用深度学习的方法设计艺术字,自动生成更加有意思的文字吗?

答案毫无疑问,必须的必。

我们实际上已经有了 CNN(卷积神经网络)以及基于其的风格迁移,我们只需要做的是用一张汉字作为原始输入,用一张对应的图片作为风格,迁移上去即可。

听上去真是简单呢,事不宜迟,我这就打开了 Github,下一个模型开跑,结果如下:

花(风格图片)

花(迁移的图片)

看到结果,不禁让人感到震撼,CNN 网络学会了从图片里面剥离出“叶子”和“花朵”两种语义,并且将原始的图片中的背景和汉字部分分开,分别进行绘制。最后的效果就是花海中的文字,而文字恰好由叶子构成,唯美的画面就像大自然的鬼斧神工,处处透露着宇宙的和谐……不行我编不下去了……

最后的结果并不如人意,花颜色太奇怪,叶子黑得蔫了吧唧的,我们还是得深入研究才行。

打开代码,我们发现代码中使用了 Keras 提供训练好的的 VGG19 模型,使用其中的几层卷积层作为风格损失,还使用最后一层卷积层作为内容损失,结果并不怎么样。

于是,我们分别实验了六层卷积层,分别标记为 A-F 层,这些作为风格损失的情况:

VGG19的A-F层卷积层

六层分别作为风格损失的情况

从这些图片可以看到,卷积网络确实实在逐层抽象,开始时,层A的卷积核还在寻找颜色,后来,BC 开始寻找由颜色和线条构成的抽象的“花”“叶”的形状,D、E、F则是逐渐走向识别物体的形状轮廓,摒弃色彩。从某种意义上,我们补充了 CNN 的可解释性问题。

这启发我们要结合色彩与轮廓,形状与颜色并重地解决问题,于是经过调节 LOSS 函数,测试了各种层的结果如下:

用多层的组合作为风格损失的结果,最后我们选择了ABC层作为最终结果

进一步地,我们还可以提升效果。加入随机扰动,加入图片增强:

加入随机扰动,平滑效果,以及一系列图片增强的效果

怎么样?效果相当漂亮吧?感兴趣的可以去我的Github上下载代码

我们已经添加了一些生成图片的接口,方便大家使用,此外还提供几十张风格图片供您探索,如果觉得有意思的话,请别忘了点一下 Star。

还在等什么?赶紧放开你的想象力!尽情地创造吧!

下面是我们提供的一系列 sytle 图片的例子,供您欣赏!

项目细节

使用方法很简单,只需要输入:

python.exe neural_style_transfer.py 风格图片所在目录 输出文件夹--chars 花 #要生成的文字,支持一次输入多个文字

--pictrue_size 300 #生成图片大小

--background_color (0,0,0) #文字图片中背景的颜色

--text_color (255,255,255) #文字图片中文字的颜色

--iter 50 #迭代次数,一般50代左右就行

--smooth_times 20 #文字图片是否进行模糊化处理

--noise True #文字图片是否加入随机噪声

--image_enhance True #生成图片是否进行增强,包括色度,亮度,锐度增强

--font_name 宋体 #文字字体,支持宋体,楷体,黑体,仿宋,等线

--reverse_color False #True-黑纸白字,False-白纸黑字,默认白纸黑字

一些说明

神经网络基于 Keras 官方的风格迁移的例子,经过一定的调整 loss 函数和调参后得到最适合于艺术风格字体的代码。调整包括:

1. 加入生成文字图片的方法,以及提供一系列图片生成相关接口,便于您第一时间修改结果;

2. 修改了 loss 函数,经过大量实验,确定使用 Keras 提供的 VGG19 网络的'block1_conv1','block2_conv1','block3_conv1'三层作为风格损失,去除内容损失;

3. 加入一些图片的增强方法,使得结果更加色彩丰富;

4. 在 style 文件夹下提供了一系列图片供您探索;

5.如果出现h5py的错误,那么请更新安装即可,即为:pip install --upgrade h5py

项目运行的命令截图:

项目开始

运行中

运行结果

pythonturtle艺术字_字体风格迁移,卷积神经网络打败艺术字,生成最美汉字相关推荐

  1. 毕业设计 - 题目:基于深度学习的图像风格迁移 - [ 卷积神经网络 机器视觉 ]

    文章目录 0 简介 1 VGG网络 2 风格迁移 3 内容损失 4 风格损失 5 主代码实现 6 迁移模型实现 7 效果展示 8 最后 0 简介 今天学长向大家介绍一个机器视觉项目 基于深度学习卷积神 ...

  2. 漫画风格迁移神器 AnimeGANv2:快速生成你的漫画形象

    生成你的漫画形象! 漫画风格迁移神器 AnimeGANv2 文章目录 生成你的漫画形象! 漫画风格迁移神器 AnimeGANv2 快速在线生成你的漫画形象 AnimeGAN 简要介绍 与其他动漫风格迁 ...

  3. 好像还挺好玩的GAN2——Keras搭建DCGAN利用深度卷积神经网络实现图片生成

    好像还挺好玩的GAN2--Keras搭建DCGAN利用深度卷积神经网络实现图片生成 注意事项 学习前言 什么是DCGAN 神经网络构建 1.Generator 2.Discriminator 训练思路 ...

  4. cnn风格迁移_机器学习:利用卷积神经网络实现图像风格迁移 (一)

    相信很多人都对之前大名鼎鼎的 Prisma 早有耳闻,Prisma 能够将一张普通的图像转换成各种艺术风格的图像,今天,我们将要介绍一下Prisma 这款软件背后的算法原理.就是发表于 2016 CV ...

  5. 图像风格迁移_图像风格迁移—谷歌大脑团队任意图像风格化迁移论文详解

    点击蓝字关注我们 AI研习图书馆,发现不一样的世界 风格迁移 图像风格化迁移是一个很有意思的研究领域,它可以将一张图的风格迁移到另外一张图像上,由此还诞生了Prisma和Ostagram这样的商业化产 ...

  6. 图像迁移风格保存模型_图像风格迁移

    样式迁移 如果你是一位摄影爱好者,也许接触过滤镜.它能改变照片的颜色样式,从而使风景照更加锐利或者令人像更加美白.但一个滤镜通常只能改变照片的某个方面.如果要照片达到理想中的样式,经常需要尝试大量不同 ...

  7. python图片风格迁移毕设_神经风格迁移是如何运作的概述及Python实现

    神经风格迁移是如何运作的概述及Python实现 作者:PHPYuan 时间:2019-03-26 03:40:37 深度学习可以捕获一个图像的内容并将其与另一个图像的风格相结合,这种技术称为神经风格迁 ...

  8. pytorch卷积可视化_使用Pytorch可视化卷积神经网络

    pytorch卷积可视化 Filter and Feature map Image by the author 筛选和特征图作者提供的图像 When dealing with image's and ...

  9. python神经网络库识别验证码_基于TensorFlow 使用卷积神经网络识别字符型图片验证码...

    本项目使用卷积神经网络识别字符型图片验证码,其基于TensorFlow 框架.它封装了非常通用的校验.训练.验证.识别和调用 API,极大地减低了识别字符型验证码花费的时间和精力. 项目地址:http ...

最新文章

  1. SublimeLinter插件对PHP语法检测不起作用的解决办法
  2. python手机版下载3.7.2-QPython - Python for Android
  3. 一起看一下主流应用使用了哪些三方库
  4. 市场经济下,一周休息2.5天难在落实
  5. 高等数学张宇18讲 第十四讲 数学一、数学二专题内容
  6. 下单账号与支付账号不一致_如何申请企业支付宝账号
  7. 问题:C语言习题5.22 - 学生成绩的处理
  8. IDEA打包jar包及运行jar包命令
  9. 笔记本计算机在桌面显示,笔记本电脑开机后不显示桌面该怎么处理
  10. SGE(集群任务管理系统)常用操作命令
  11. 选择率,基数计算公式
  12. 浙江大学翁恺老师的城堡游戏源代码
  13. 京东1.8联合会员腾讯视频QQ音乐转手教程 京东app换绑
  14. 微信公众号开发--自定义菜单跳转页面并获取用户信息(续)
  15. 计算机考试打字合格速度,雅思考试使用机考,打字速度决定最终成绩
  16. 数字图像处理学习笔记(一)
  17. Java-通过年和月获取当前月有几个周一并获取周一的日期
  18. 谷粒学院项目笔记6——oss、EasyExcel、课程分类、nginx
  19. [Python图像处理] 二十九.MoviePy视频编辑库实现抖音短视频剪切合并操作
  20. 字符串分段组合python123_boost python分段fau

热门文章

  1. Uncle Sam 山姆大叔
  2. Destroying assets is not permitted to avoid data loss.解决思路
  3. nodeBB项目的目录结构简介(nodeBB系列三)
  4. MFC课程设计 --学生成绩管理系统
  5. 计算机组成原理笔记(王道考研) 第二章:数据的表示和运算2
  6. cmd显示服务器对区域没有权威,查询dns解析服务器地址cmd命令
  7. Android Edittext 手机号码格式输入设置
  8. 【C语言程序设计】C语言求最小公倍数(详解版)!
  9. UC浏览器设置代理服务器JAVA_uc浏览器让JAVA手机变“聪明”的方法
  10. UE4 相机对焦学习笔记