16

厌倦了大众字体?你可以用这个项目自创一款手写体

 4 years ago
source link: https://www.jiqizhixin.com/articles/2020-05-12-9
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
本文主要介绍用 Tensorflow 编写的 RNN 手写笔迹合成项目,该模型主要基于 2013 年一篇关于手写笔迹合成的论文。从项目作者的 Github 进程来看,该项目实现已于 2018 年就完成,近日新推出的 Demo 所演示的交互模式下的网页版本为最新版,基于TensorFlow

.js 实现。

项目作者也表示在基于 2013 的手写笔迹合成的论文下,新增了一个推理模型进行优化。(Demo 如下图所示)

vIVbYry.gif

不同字体的手写笔迹合成。

maMFNfy.gif

  • 项目地址:https://github.com/sjvasquez/handwriting-synthesis

  • 网页版 Demo:https://seanvasquez.com/handwriting-generation/

UzInaiJ.png!web

上图这个权游里瑟曦的经典台词就是使用该项目创建的。

效果展示

让我们先来看一看这个项目的实际效果如何。

示例一为使用固定风格与偏置生成的样本(Smash Mouth – All Star 歌词):

vIVZf2A.png!web

示例二为使用变化的风格与固定偏置生成的样本,每一句诗词使用不同的风格生成(Vanessa Carlton – A Thousand Miles 歌词):

Vj6Bnqb.png!web

Jjm6Jjv.png!web

示例三为使用变化偏置与固定风格生成的样本,每一句诗词的偏置要比上一句小,最后一句无偏置(Leonard Cohen – Hallelujah 歌词):

yMzAjmu.png!web

E7nAFjQ.png!web

使用方法

该项目的创建时间虽然有点早,不过从上一节的效果展示上来看依然很酷炫。值得一提的是该实现已经非常接近原论文,只有一些非常细微的偏差,生成的样本的质量也非常接近论文中的效果。

接下来让我们来看看如何使用:

lines = [
    "Now this is a story all about how",
    "My life got flipped turned upside down",
    "And I'd like to take a minute, just sit right there",
    "I'll tell you how I became the prince of a town called Bel-Air",
]
biases = [.75 for i in lines]
styles = [9 for i in lines]
stroke_colors = ['red', 'green', 'black', 'blue']
stroke_widths = [1, 2, 1, 2]

hand = Hand()
hand.write(
    filename='img/usage_demo.svg',
    lines=lines,
    biases=biases,
    styles=styles,
    stroke_colors=stroke_colors,
    stroke_widths=stroke_widths
)

aUFfqeY.png!web效果展示图。

简单来说有些细节需要注意,如上述代码所示,目前 Hand 类必须从 demo.py. 中导入。同时,其中也包含预训练模型,当然你也完全可以训练你自己的模型。

项目作者表示,该项目发起之初主要是为了研究论文而做的参考实验。但最终复现效果质量非常不错,因此该项目是可以更为广泛的进行使用。

比如可以将其进行打包,让整个项目项目看起来更像是一个可用的软件类项目,而不仅像研究类代码。同时,作者也提出可增添更多复杂的绘图、动画或是此方向的任意内容,而不仅仅限制至于当下的手写笔迹转换。感兴趣的读者可以参考项目原链接进行浏览。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK