欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!

程序员文章站 2022-07-14 08:22:38
...

公众号关注 “GitHubDaily”

设为 “星标”,每天带你逛 GitHub!

GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!

转自机器之心

大家好,我是小 G。

如果你想用程序来快速生成一款属于自己的手写字体,不妨试下这个开源项目:Handwriting Synthesis。

该项目创意始于 Alex Graves 在 2013 年发布的一篇论文:《Generating Sequences With Recurrent Neural Networks》,而后经 MIT 的一名学生 Sean Vasquez 参照实现,并于前不久正式推出了基于 TensorFlow.js 开发的 Web 版 Demo 页面。

下方视频为该项目的具体演示视频,对此感兴趣的同学,也可以亲自上手试一下。更进一步的,还可以尝试训练自己的模型,打造一款只属于你个人的手写字体。

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

GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!

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

GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!

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

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

GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!

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

效果展示

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

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

GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!

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

GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!

GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!

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

GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!

GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!

使用方法

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

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

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
)

GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!效果展示图。

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

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

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

最后,总结下该项目的相关链接,供各位水友参考。

论文地址:https://arxiv.org/abs/1308.0850

Demo 地址:https://seanvasquez.com/handwriting-generation/

GitHub 地址:https://github.com/sjvasquez/handwriting-synthesis

---

另外,由 GitHubDaily 原班人马打造的公众号:GitCube,现已正式上线!
接下来我们将会在该公众号上,为大家分享优质的计算机学习资源与开发者工具,坚持每天一篇原创文章的输出,感兴趣的小伙伴可以关注一下哈!