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

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

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

“七彩”的艺术字

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

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

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

答案当然是可以!

我们实际上已经有了CNN(卷积神经网络)以及基于其的风格迁移,我们只需要做的是用一张汉字作为原始输入,用一张对应的图片作为风格,迁移上去即可,听上去真是简单呢,事不宜迟,题主这就打开了github,下一个模型开跑,结果如下:

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


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

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

打开代码,我们发现代码中使用了Keras提供训练好的的VGG19模型,使用其中的几层卷积层作为风格损失,还使用最后一层卷积层作为内容损失,结果并不怎么样。于是,我们分别实验了六层卷积层,分别标记为A-F层,这些作为风格损失的情况:

用风格迁移搞事情!超越艺术字:卷积神经网络打造最美汉字
用风格迁移搞事情!超越艺术字:卷积神经网络打造最美汉字
六层分别作为风格损失的情况

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

这启发我们要结合色彩与轮廓,形状与颜色并重地解决问题,于是经过调节LOSS函数,测试了各种层的结果,加入随机扰动,加入图片增强,测试了几十张风格图片后,我们实现了如下的结果,尽情欣赏:

所有代码均已开源,对细节感兴趣的请移步github:github-基于卷积神经网络的风格迁移,超越艺术字

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

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