告别“鬼画符”,SDT让笔迹模仿成为现实

2024年1月21日
琶洲实验室
651

在上一期推文中,我们聊到了“笔迹模仿”AI模型的开发思路与发展现状,AI领域的中文字符识别,生成仍有很长的路要走。举个例子,用目前主流AI生成图片模型制作的图片,仔细看就会发现里面的中文都如“鬼画符”一般,尚不能准确地生成正确的文字。

能否让AI生成的中文既具备创作者风格,又能稳定保证字形的准确?接下来,让我们一起了解琶洲实验室研究者们提出的解决方案。

核心动机

研究者发现,在个人的笔迹中通常存在两种书写风格

1. 相同书写者的笔迹具有一种整体上的风格共性,各个字符呈现出相似的倾斜程度和宽高比,而不同书写者的风格共性各不相同。由于这种特点可以用于区分不同的书写者,研究者将其称为书写者风格。

2. 除了整体上的风格共性,来自同一书写者的不同字符之间存在细节上的风格差异。例如,对于字符 “湖” 和 “海”,它们在字符结构上都具有相同的三点水部首,但该部首在不同字符中存在微小的书写差异,表现在是否具有连笔。研究者将这种字形上的细微风格模式称为字形风格。受到上述观察的启发,研究者希望能够从个人的笔迹中解耦出书写者风格和字形风格,以提升对用户笔迹的风格模仿能力。

方法框架

研究者提出了一种基于风格解耦的手写文字生成方法(Style Disentangled Transformer,SDT),整体框架如下图所示。我们可以将这个方法理解为一个特别的“工厂”,里面有三个重要的机器:一个是双分支风格编码器,一个是内容编码器,还有一个是Transformer解码器

研究者通过提出了两个互补的对比学习目标,引导风格编码器的“Writter Head”和“Glyph Head”分别学习提取书写者风格和字形风格。然后,研究者利用“Transformer”的多头注意力机制,动态地合并写字的风格特点和字的形状特点,一点一点地创造出漂亮的在线手写文字。

书写者风格提取

研究者提出了面向书写者风格提取的有监督对比学习目标,通过将属于同一书写者的字符样本聚集在一起,将不同书写者的手写样本推开,明确引导书写者分支关注个人笔迹中的风格共性。

字型风格提取

为了学习更加细节的字形风格,提出最大化相同字符不同视角之间的互信息,以鼓励字形分支专注于学习字符中的细节模式。具体实现如下图所示:首先,对同一张手写字符进行两次独立采样,得到包含笔画细节信息的正样本o和o^+。然后,从其他字符中采样得到负样本o^-。在每次采样时,将样本分割成若干块,随机选择少量样本块作为新视角,以包含样本的细节部分。采样过程遵循均匀分布,以避免过度采样字符的某些局部区域。

融合策略

获取了两种风格特征后,如何将其与内容编码器学习到的内容编码进行高效融合呢?当学习到风格信息后,研究者将内容特征作为查询向量,自适应地捕获参考样本中的风格信息,从而实现风格和内容的高效融合,生成符合预期的手写笔迹。

实验展示

从下图可以看出,相比以前的方法,SDT生成的中文手写字符既能避免字符的崩坏,又能很好地临摹用户的书写风格。另外,得益于字形风格学习,SDT在字符的笔画细节生成方面也能做的很好,如下图红框和蓝框中展示了以前方法的生成失败样例,而SDT却依然可以做的很好。

在日文、印度文、英文上,SDT也表现良好。尤其在印度文生成方面,现有主流方法很容易生成崩溃的字符,而SDT依旧能够维持字符内容的正确性。

细心的朋友们可能发现了,上图中展示的文字是缺乏笔画宽度和颜色的,这是因为SDT生成的在线文字,本身是不带笔画宽度信息的。研究者们在SDT的后面加了一个笔画装饰器,为在线字体添加上笔画宽度和颜色,从而转换逼真的离线字体。从下图可以看到,相比其他方法倾向生成模糊的文字,扩展后的SDT可以合成与目标几乎一致的离线手写文字。

本期结语

AI技术日新月异,或许在不久的将来,SDT模型就能被广泛运用,每个人在网络上都能用独特的字体进行个性化表达,字迹模仿也有机会在教育、设计等领域大放异彩,成为新的经济、技术增长点。

你还想了解人工智能和数字经济哪些方面知识呢?欢迎将你期待的话题发给我们。

欢迎大家关注“琶洲实验室科普号”,更多人工智能与数字经济的趣味科普,等你来探!

参考资料

[1] Dai, Gang and Zhang, Yifan and Wang, Qingfeng and Du, Qing and Yu, Zhuliang and Liu, Zhuoman and Huang, Shuangping. Disentangling Writer and Character Styles for Handwriting Generation, CVPR. 2023.

[2] Github: https://github.com/dailenson/SDT

[3] bilibili: https://b23.tv/m8aXneY