首页 > 其他分享 >会模仿笔迹的AI,为你创造专属字体

会模仿笔迹的AI,为你创造专属字体

时间:2023-06-14 22:11:55浏览次数:33  
标签:SDT 字符 专属 笔迹 AI 书写 风格 手写

笔迹模仿 AI 的研究背景

 

俗话说,见字如面,字如其人。相比呆板的打印字体,手写体更能体现书写者的个人特点。相信很多人都曾设想过,拥有一套属于自己的手写字体,用在社交软件中,更好的展示自己的个人风格。

 

然而,不同于英文字母,汉字数量是极其庞大的,想要创造一套自己的专属字体代价十分高昂。例如,最新发布的国标GB18030-2022中文字符集包含8万多个汉字。有报道称,某视频网站博主花了18个小时写完了7000多个汉字,中间耗费了足足13支笔,手都写麻了!

 

上述问题引发了论文作者的思考,能否设计一个文字自动生成模型,帮助解决专属字体创造代价高的问题呢?为了解决这一问题,研究者设想提出一个会笔迹模仿的 AI,仅需用户提供少量的手写样本(大约 10 几张),就能提取笔迹中蕴含的书写风格(例如字符的大小、倾斜程度、横宽比、笔画的长短和曲率等),并且临摹该风格去合成更多的文字,从而为用户高效合成一套完整的手写字体。

 

图片

 

进一步地,论文作者从应用价值和用户体验两个角度出发,对该模型的输入和输出模态做了如下思考:1. 考虑到序列模态的在线字体 (online handwritings) 比图像模态的离线文字 (offline handwritings) 包含更丰富的信息(轨迹点的详细位置和书写顺序,如下图所示),将模型的输出模态设置为在线文字会有更广泛的应用前景,例如可以应用到机器人写字和书法教育上。2. 在日常生活中,相比通过平板和触摸笔等采集设备获取在线文字,人们利用手机拍照获取离线文字更加方便。因此,将生成模型的输入模态设为离线文字,用户使用起来会更加方便!

 

图片

 

总结起来,本文的研究目标是提出一个风格化的在线手写文字生成模型 (stylized online handwriting generation method)。该模型既能临摹用户提供的离线文字中所蕴含的书写风格,又能根据用户需要在线生成内容可控的手写笔迹。

 

图片

 

  • 论文地址:https://arxiv.org/abs/2303.14736

  • 代码开源:https://github.com/dailenson/SDT

 

主要挑战

 

为了实现上述目标,研究者们分析了两个关键问题:1. 由于用户只能提供少量的字符样本,能否仅从这些少量的参考样本中学习用户独特的书写风格呢?换句话说,根据少量的参考样本临摹用户的书写风格是否可行?2. 本文的研究目标不仅需要满足生成的文字风格可控,还需要内容也可控。因此,在学习到用户的书写风格后,如何将该风格与文字内容高效的结合,从而生成满足用户期望的手写笔迹?接下来让我们看看这篇 CVPR 2023 提出的 SDT(style disentangled Transformer)方法是怎样解决这两个问题的吧。

 

解决方案

 

研究动机 研究者发现,个人笔迹中通常存在两种书写风格:1. 相同书写者的笔迹存在着一种整体上的风格共性,各个字符呈现出相似的倾斜程度和宽高比,且不同书写者的风格共性各不相同。由于这种特性可以用于区分出不同的书写者,研究者们称其为书写者风格。2. 除了整体上的风格共性,来自同一书写者的不同字符间存在着细节上的风格不一致。例如,对于 “黑” 和 “杰” 两个字符,二者在字符结构上具有相同的四点水部首,但该部首在不同的字符中存在微弱的书写差异,体现在笔画书写的长短、位置和曲率上。研究者们将这种字形上的细微的风格模式称为字形风格。受启发于上述观察,SDT 旨在从个人笔迹中解耦出书写者和字形风格,期望提升对用户笔迹的风格模仿能力。

 

图片

 

在学习到风格信息后,不同于以往的手写文字生成方法简单的将风格和内容特征进行简单的拼接,SDT 将内容特征作为查询向量,自适应的捕获风格信息,从而实现风格和内容的高效融合,生成符合用户预期的手写笔迹。

 

图片

 

方法框架 SDT 的整体框架如下图所示,包含双分支风格编码器、内容编码器和 transformer 解码器三部分。首先,本文提出两个互补的对比学习目标来引导风格编码器的书写者分支和字形分支分别学习对应的风格提取。然后,SDT 利用 transformer 的注意力机制 (multi-head attention) 对风格特征和内容编码器提取到的内容特征进行动态融合,渐进式的合成在线手写文字。

 

图片

 

(a) 书写者风格对比学习 SDT 提出面向书写者风格提取的有监督对比学习目标(WriterNCE),将属于相同书写者的字符样本聚集在一起,推远属于不同书写者的手写样本,显示地引导书写者分支关注个人笔迹中的风格共性。

 

(b) 字形风格对比学习 为了学习更加细节的字形风格,SDT 提出无监督的对比学习目标 (GlyphNCE),用于最大化相同字符不同视角间的互信息,鼓励字形分支专注学习字符中的细节模式。具体如下图所示,首先对同一张手写字符做两次独立的采样,获取一对含有笔画细节信息的正样本图片图片,然后从其他字符中采样得到负样本图片。每次采样时,随机选择少量样本块作为包含原始样本细节的新视角。样本块的采样服从均匀分布,避免字符的某些区域被过度采样。为了更好的引导字形分支,采样过程直接作用于字形分支输出的特征序列上。

 

图片

 

(c) 风格和内容信息的融合策略 获取了两种风格特征后,如何将其与内容编码器学习到的内容编码进行高效融合呢?为了解决这一问题,在任意的解码时刻 t,SDT 将内容特征视作初始点,然后结合 q 和 t 时刻之前输出的轨迹点图片形成新的内容上下文图片。接着,内容上下文被视为 query 向量,风格信息作为 key & value 向量。在交叉注意力机制的融合下,内容上下文与两种风格信息依次完成动态聚合。

 

实验

 

定量评价 SDT 在中文、日文、印度文和英文数据集上都取得了最优异的性能,尤其是在风格分数指标上,相比之前的 SOTA 方法,SDT 取得了较大突破。

 

图片

 

图片

 

定性评价 在中文生成方面,相比以前的方法,SDT 生成的手写字符既能避免字符的崩坏又能很好的临摹用户的书写风格。得益于字形风格学习,SDT 在字符的笔画细节生成方面也能做的很好。

 

图片

 

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

 

图片

 

不同模块对算法性能的影响 如下表所示,本文提出的各个模块具有协同作用,有效提升了对用户笔迹的临摹性能。具体来说,书写者风格的加入提升了 SDT 对字符整体风格的模仿,例如字符的倾斜程度和长宽比等,而字形风格的加入改善了生成字符的笔画细节。相比已有方法简单的融合策略,在各项指标上 SDT 的自适应动态融合策略全面增强了字符的生成性能。

 

图片

 

 

图片

 

两种风格的可视化分析 对两种风格特征进行傅里叶变换得到如下的频谱图,从图中观察到,书写者风格包含更多的低频成分,而字形风格主要关注高频成分。事实上,低频成分包含目标的整体轮廓,高频成分则更加关注物体的细节。这一发现进一步验证和解释了解耦书写风格的有效性。

 

图片

 

展望

 

大家可以通过笔迹 AI 创造自己的专属字体,在社交平台上更好的表达自我

标签:SDT,字符,专属,笔迹,AI,书写,风格,手写
From: https://www.cnblogs.com/botai/p/handwriting.html

相关文章

  • 【Azure 应用服务】Azure Function App在部署时候遇见 503 ServiceUnavailable
    问题描述在VSCode中编写好AzureFunctionApp代码后,通过 funcazurefunctionapppublish部署失败,抛出503ServiceUnavailable错误。Gettingsitepublishinginfo...Creatingarchiveforcurrentdirectory...Performingremotebuildforfunctionsproject.Dele......
  • MONAI(4)—一文看懂各种Transform用法(下)
    6裁剪&填充【SpatialCropd,CenterSpatialCropd,CropForegroundd,RandCropByPosNegLabeld,SpatialPadd】对于CT或者MRI图像来讲,图像是非常大的,又是一个三维图像,不可能全部输入网络中训练。要么把图像直接Resize到固定的尺寸,要么就是裁剪图像。monai提供了非常多的裁剪模式,包括......
  • MONAI(3)—一文看懂各种Transform用法(上)
    在上一次分享中,我们在Dataset方法里,已经使用了transform函数,这节课对transform做一个详细的介绍。上一次视频连接:MONAI中,一定要学会的三种Datasettransform大致可以分为以下几个类别想要什么样类别的变换,就在该类别下去找。目录普通变换和字典变换的联系与区别1.数据准备2.加载NIf......
  • MONAI中,一定要学会的三种Dataset使用方法
    在正式学习MONAI功能函数前,以下的网址必须要收藏。1.MONAIAPI: https://docs.monai.io/en/latest/index.html作用:查询功能函数的用法,主要分为以下几类2.MONAIGitHub项目地址: https://github.com/Project-MONAI   作用:如果上述API介绍的不够完整,可以去项目里面找一些例子......
  • 理解linux的IOWait
    看到许多Linux性能工程师将CPU使用的"IOWait"部分视为系统何时处于I/O瓶颈的标识。本文将解释为什么这种方法是不可靠的,以及你可以使用哪些更好的指标。从运行一个小实验开始——在系统上产生大量的I/O使用:sysbench--threads=8--time=0--max-requests=0fileio--file-nu......
  • ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效(oracle 锁表)(转载
    1、查看数据库内产生了哪些锁selectt2.username,t2.sid,t2.serial#,t2.logon_timefromv$locked_objectt1,v$sessiont2wheret1.session_id=t2.sidorderbyt2.logon_time;如:   USERNAMESIDSERIAL#LOGON_TIMElurou851241832013/7/3011:44:45知道被锁的用户l......
  • GPT:Generative Pre-Training
    1.概述随着深度学习在NLP领域的发展,产生很多深度网络模型用于求解各类的NLP问题,从word2vec词向量工具的提出后,预训练的词向量成了众多NLP深度模型中的重要组成部分。然而传统的word2vec生成的词向量都是上下文无关的,其生成的词向量式固定,不会随着上下文的改变而改变,这种固定的词向......
  • waibao
    感觉纯粹写代码的地位越来越低了,除了大公司就是农民工就很底层就要很奴性貌似外包化劳务派遣是大的趋势网友把二线城市说了一遍看到了一条脉脉语录,说是外包化  有点感触外包就外包呗  有份工资就可以没人权就换家  待的不舒服就换家  长远来看,应该不太可能一家工......
  • 风口上的AIGC,技术岗动不动年薪百万,甚至重金难求?
    2023年,职场人都在讨论什么?自今年3月以来,随着ChatGPT应用持续走俏,AIGC领域抢人大战盛况空前。随之而来的便是“AI取代人类”“10亿打工人被革命”,AI的发展速度和步伐,超乎我们预期,也影响了很多行业。那说到底,哪些行业可以搭上这趟AI快车?哪些人的工作会被AI“干掉”?《2023第一季度A......
  • yarn 安装进行时,显现错误 node_modules\gifsicle: Command failed.
    1.错误显示[4/5]Buildingfreshpackages...[7/13]⠠jpegtran-bin[6/13]⠠gifsicle[8/13]⠠mozjpeg[4/13]⠠gifsicleerrorE:\IdeaStudyProjects\ucthings-ui-vue\node_modules\gifsicle:Commandfailed.Exitcode:1Command:nodelib/install.jsArguments:D......