爱吧机器人网 » 专题 > 应用 > 正文

用风格迁移搞事情!超越艺术字:卷积神经网络打造最美汉字

作者丨余唯民 & 雷芳涵
学校丨清华大学本科在读
Github丨https://github.com/yuweiming70


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


▲ “七彩”的艺术字

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


▲ 各种PS艺术字

但是,我们还能更进一步吗?将设计师从繁复的 PS 工作中解放出来,用深度学习的方法设计艺术字,自动生成更加有意思的艺术字吗?

答案当然是可以!

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

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


▲ 花(风格图片)


▲ 花的“花”

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

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

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

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


▲ VGG19的A-F层卷积层


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

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

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


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

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


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

怎么样?效果相当漂亮吧?

所有代码均已开源,对细节感兴趣的请移步 Github:

基于卷积神经网络的风格迁移:


https://github.com/yuweiming70/Style_Migration_For_Artistic_Font_With_CNN


我们已经添加了一些生成图片的接口,方便大家使用,此外还提供几十张风格图片供您探索,如果觉得有意思的话,请别忘了点一下 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. 运行需要 Keras 支持,建议使用 GPU 运算,在 Nvidia GeForce GTX 1050 Ti (4 GB) 上,一次迭代大约 3s,一张图片耗时 2-3min。


上一篇:从人脸识别到相位识别:神经网络捕捉原子尺度的重排
下一篇:研究人员正在使用AI来拯救土着语言免于灭绝
精选推荐
美国人工智能公司Skymind进入福建全面开展业务
美国人工智能公司Skymind进入福建全面开展业务

[2017-12-11]  人工智能在当今这个时代对大家来说想必是非常熟悉的,这也是我国近十几年来一直追求的目标,未来的时间里这也将是全人类追求的目标。就目前来看,近年来,人工智能或在我国迎......

什么是机器人学?机器人学简介
什么是机器人学?机器人学简介

[2017-12-14]  机器人学是工程学与科学的交叉学科,包括机械工程,电气工程,计算机科学等。机器人技术涉及机器人的设计、制造、操作和应用,以及用于控制、感官反馈和信息处理的计算机系统。...

助力卷积神经网络时空特征学习 史上最大行人重识别视频数据集被提出
助力卷积神经网络时空特征学习 史上最大行人重识别视频数据集被提出

[2017-12-25]  本文提出了一个大型的、长序列的、用于行人重识别的视频数据集,简称LVreID。与现有的同类数据集相比,该数据集具有以下特点:1)长序列:平均每段视频序列长为200帧,包含丰......

九台“猎豹”机器人组队踢球,麻省理工高材生们的高级趣味
九台“猎豹”机器人组队踢球,麻省理工高材生们的高级趣味

[2019-11-09]  本周,在麻省理工学院10号楼外草坪上展开了一场别开生面的足球比赛。在绿草如茵的基利安球场上,一群由人工智能驱动的机器人就是这场比赛的 ...

谷歌大脑发布ROBEL基准 鼓励用低成本机器人训练AI系统
谷歌大脑发布ROBEL基准 鼓励用低成本机器人训练AI系统

[2019-10-11]  训练AI系统的机器人D& 39;Claw和D& 39;Kitty用于控制机器人的人工智能系统,测量其性能所使用的基准通常仅限于为工业环境设计的昂贵硬件, ...

集群机器人领域最新研究:一种用于探测未知环境的微型无人机群
集群机器人领域最新研究:一种用于探测未知环境的微型无人机群

[2019-10-26]  (图:无人机扩散至不同方向来探索环境。当一个无人机注意到另一个无人机在它的首选方向,它将试图飞到另一个方向。若首选方向冲突,低优先 ...

麻省理工最新机器人“装配工”未来可建造太空基地
麻省理工最新机器人“装配工”未来可建造太空基地

[2019-10-17]  两个机器人原型把一系列小单元组装成大结构体麻省理工学院科研人员最近提出一种新型机器人技术,即一种小型机器人系统,能够自主地用统一规 ...

可编辑神经网络,有望简化深度学习?
可编辑神经网络,有望简化深度学习?

[2019-10-04]  深度学习是一个计算繁重的过程。 降低成本一直是 Data curation 的一大挑战。 关于深度学习神经网络大功耗的训练过程,已经有研究人员 ...

本周栏目热点

[2017-08-29]    8月25日,在日本木更津,狼型机器人超级怪兽狼站在稻田边,威慑可能危害庄稼的野生动物。当野生动物接近庄稼地,装有红外感应器的机器 ...

雾计算应用案例分析:无人机领域快递的应用

[2016-09-01]      导读: 无人机,是典型的物联网相关应用。传统的快递行业,面临着巨大的人员开销,设备成本,安全问题。然而,无人机快递,却可以精 ...

Air wheel平衡车虎嗅千里送车行:“卖萌”文创的故宫淘宝

[2015-12-23]     摘要:提到故宫,你会想起什么?恢弘气势、历史感十足?还是脑洞大开的一系列文创产品?近日,Airwheel的工作人员便带着Airwheel&虎嗅 ...

以品质立足世界,纳斯达克大屏上的Airwheel平衡车

[2015-12-23]     摘要:12月15日,Airwheel在美国证券交易所纳斯达克广告屏上对旗下的产品以及所推崇的出行理念进行宣传投放。在12月12日亚马逊全线封禁 ...

揭秘!越来越多编辑部开始自动化办公,AI会取代编辑吗?

[2018-05-22]  有人说,机器人和人工智能是下一场工业革命,它们会比以往的工业革命——蒸汽、电、计算机更具颠覆性,因为它们不仅仅会取代常规,还会取代 ...