突破性进展!只需单张参考图,完美仿写各种手写内容!华南理工等开源One-DM

文章链接:https://arxiv.org/pdf/2409.04004
git链接:https://github.com/dailenson/One-DM

亮点直击

  • 提出一种创新的扩散模型,用于生成风格化的手写文本。这一模型的显著特点是只需一个参考样本作为风格输入,便能模仿该样本的书写风格,生成任意内容的手写文本。这种方法的简化使得风格化手写文本的生成更加高效和便捷。

  • 引入了参考样本中的高频成分,以增强手写风格的提取。通过采用这种风格增强模块,能够更精确地捕捉书写风格的细微模式,同时有效减少背景噪声的干扰。这种创新显著提升了生成文本的风格还原度和清晰度。

  • 在英语、中文和日语等多种语言的手写数据集上进行的广泛实验表明,尽管该方法只使用一个风格参考样本,但其生成效果却超过了以往需要多达15倍样本的传统方法。这一成果表明,该研究在风格化手写文本生成领域具有显著的突破性进展。

总结速览

解决的问题:

  • 现有手写文本生成方法通常需要超过十个样本作为风格参考。

  • 实际应用中,用户偏好只用一个样本的生成模型以提高便利性和效率。

  • 单样本生成方法面临捕捉细节和处理背景噪声的挑战,特别是在字符边缘的高频信息提取上困难重重。

提出的方案:

  • 提出了“单样本扩散模仿器”(One-DM)来生成手写文本,并能模仿任何书法风格。

  • 开发了一种风格增强模块,利用样本中的高频信息(如字符倾斜和字母连接)来提升风格提取效果。

  • 将风格特征与文本内容融合,作为扩散模型生成手写文本的引导条件。

应用的技术:

  • 风格增强模块提取并增强样本中的高频信息,以捕捉细腻的风格细节。

  • 通过将风格特征和文本内容合并,指导扩散模型生成高质量的手写文本图像。

达到的效果:

  • 实验表明,One-DM方法能够在仅使用一个样本的情况下,成功生成多种语言的手写文本。

  • 相比需要超过十个样本的方法,One-DM在生成效果上表现更优。

方法

整体方案:
思路集中在利用风格参考图像中的高频信息来增强风格模式的提取。一种简单的实现方式是使用普通的transformer编码器来从风格图像及其对应的高频图像中提取风格特征。然而,这种简单方法面临两个主要问题:

  • 缺乏有效的监督目标,使得从高频图像中准确学习作者的风格模式变得具有挑战性;

  • 从原始图像中捕获的风格特征仍然保留了不需要的噪声背景,这可能对后续的图像生成性能产生负面影响。

为了解决上述问题,作者开发了一种更有效的方法,如下图3所示。

该方法包括风格增强模块、内容编码器、风格-内容融合模块和条件扩散模块。具体流程如下:

  1. 高频信息提取:
    首先,利用拉普拉斯核作为高频滤波器,从风格参考中提取高频成分。接着,使用两个并行的风格编码器,分别从风格参考图像及其高频信息中提取相应的风格特征。由于风格参考图像中常常存在不必要的背景噪声,作者设计了一个门控机制,以促进信息风格的传递,同时减轻噪声的影响。高频成分中的风格模式相对更为干净且明显,有助于观察单独的风格特征,如字符倾斜。为此,提出了一种对比学习目标,称为LaplacianNCE ,以增强从高频成分中学习更具区分性的风格特征。

  2. 内容指导:
    针对内容指导,将给定的字符串 A 渲染成一个统一字体图像,类似于VATr。简而言之,Unifont的关键优势在于它涵盖了所有Unicode字符,允许将任何用户输入转换为相应的图像。接着,将渲染结果输入到内容编码器中,该编码器结合了ResNet18 和Transformer编码器。该过程首先使用ResNet18并行处理每个字符图像,然后将这些图像连接起来形成词序列特征。Transformer编码器随后处理这些特征,提取具有全球上下文的信息内容特征 ,其中 c 是通道维度。

  3. 风格-内容融合:
    在获得风格特征和内容指导后,我们使用风格-内容融合模块将它们无缝融合。融合后的结果随后指导条件扩散模型的去噪过程,以合成所需的手写文本图像。去噪过程通过重建损失 进行监督。

风格增强模块

本文提出了风格增强模块,以通过引入参考图像 的高频成分 来提升风格提取效果,因为高频成分中呈现了更清晰的风格模式,例如字符倾斜和形状连接(参见下图2)。如上图3所示,使用拉普拉斯核作为高频滤波器,从 中提取 。拉普拉斯核在提取高频信息方面表现出色,无需进行快速傅里叶变换(FFT)或在频域中进行参数分离。接下来,两个风格编码器 和 ,它们是CNN和transformer的组合,分别处理 和 。这种独立处理会提取出不同的风格特征: 来自 和 来自 ,其中 。虽然结构上相同, 和 之间的权重是不共享的。接下来,提出的 强制 专注于从 中提取更具区分性的风格特征。研究者们设计了一个门控机制,选择性地过滤掉参考风格特征中的背景噪声,只允许有意义的风格模式通过。

拉普拉斯对比学习:
提出的 的目标是指导高频风格编码器 从高频信息中学习更具区分性的风格特征。因此,提出了使同一作者提取的风格特征 更接近,同时使来自不同作者的风格特征相互远离的方案。将 公式化如下:

在一个大小为 N 的小批量中,i 是任意元素的索引, 是与 i 不同的其他索引。 是一个锚点样本,属于写入者,而 是它的批内正样本集合, 是它的负样本集合。这里,,其中 是一个可学习的多层感知机(MLP), 是一个标量温度参数,符号 表示内积。

门控机制:如前面图2所示,参考图像中的字符笔画区域通常是稀疏的,背景噪声干扰了字符风格特征的提取。为了解决这个挑战,我们提出了一种门控机制来选择性地过滤样本 的信息,如前面图3所示。具体来说,提取的样本风格特征 被输入到一个门控层,该层由一个可学习的全连接层和一个 sigmoid 激活函数组成,以获得相应的门控单元 。每个单元 决定了对应 的通过率,其中 越大,通过率越高。这个设计有效地使得有用的风格特征 被提取出来,同时抑制了多余的背景噪声,其中 。

风格-内容融合模块

在获取了文本内容特征 E 和两个风格特征 和 后,在两个多头自注意力机制中整合所有特征,以指导扩散模型的去噪生成过程,如前面图3所示。

具体来说,第一个交叉注意力模块将文本内容 E 作为查询,来识别风格参考中的最相关风格信息,从而推断每个字符对应的风格属性。例如,如果文本内容是 'a',它会优先搜索风格参考中类似于 'a'、'b'、'd'、'g' 的字符风格特征,因为这些字符具有相似的循环结构,暗示它们的风格属性更为可比。这个过程(图3中的交叉注意力)表示为:

通过简单地将 O 和 E 相加来获得内容和风格引导之间的初步融合嵌入。然后,将合并后的中间向量作为自注意力机制中的查询、键和值,以促进信息的全面交互。最后,融合后的嵌入 g 作为扩散过程的条件。第二个多头注意力(图3中的自注意力)定义为:

条件扩散模型

条件扩散模型 的目标是生成逼真的手写文本图像,以获得的条件 g 为指导。具体来说,如图3所示,在 g 的指导下, 执行一个具有 T 步骤的去噪生成过程,从一个采样的高斯噪声 开始,逐步去噪以获得期望的手写文本:

去噪过程的目标是学习如何逆转一个预定义的前向过程,如DDPM中所述。前向过程被建模为一个固定的马尔可夫链,其中符合正态分布的噪声被逐步添加到 以得到 。这可以数学上表示为:

其中,噪声由方差调度 表征。在训练过程中,应用最大似然目标的变分下界来指导生成过程,从标准高斯噪声 恢复 ,条件是 g。给出训练目标如下:

实验

结果

风格化手写文本生成:首先,评估了 One-DM 在生成风格化手写文本图像方面的表现,旨在在生成的图像中复制风格和内容。按照 [5, 27, 46] 的方法,首先计算了生成样本和真实样本之间的 FID,对于每个作者分别计算,最后取平均。与之前的工作 [5, 27, 46] 一致,在 IAM 数据集上的实验分为四种不同的场景:IV-S、IV-U、OOV-S、OOV-U。在这四种场景中,OOV-U 是最具挑战性的情况,因为目标风格和词语在训练过程中完全未见过。对于 CVL 数据集,直接报告了所有方法在测试集上的结果。

下表1中报告了 IAM 数据集上的定量结果。

可以观察到,One-DM 在所有设置中都优于所有竞争对手。特别是,它在所有场景中都显著超越了一次性方法。令人印象深刻的是,在 IV-S 和 OOV-S 设置中,One-DM 相比于使用 15 倍更多参考样本进行风格指导的少量样本方法(如 GANwriting、HWT、VATr)也具有明显优势。即使在最具挑战性的 OOV-U 场景中,One-DM 也大幅领先于第二好的方法 VATr(102.75 对 108.76),展示了One-DM 在风格化手写文本生成中的卓越性能。类似地,本文的方法在 CVL 数据集上也优于 HWT 和 VATr,达到了最低的 FID 分数,如表4所示。

下图4中提供了定性结果,以直观地解释One-DM的优势。

GANwriting 难以捕捉参考样本的风格模式,如字符倾斜,并且偶尔会产生不清晰的字符形状。HiGAN+ 更一致地生成了内容正确的字符,但生成词语中的字符间距缺乏真实性。WordStylist 通常生成带有明显背景噪声的图像。HWT 和 VATr 在内容准确性和风格模仿方面可以生成令人满意的手写词语;然而,它们的缺点是倾向于生成更平滑的字符外观。与 HWT 和 VATr 相比,合成的样本在字符墨水颜色和笔画厚度上更为真实。然而, One-DM 生成的一些样本在墨水颜色上明显不同。下图5 中展示了本文方法与少量样本方法之间的更多定性比较。

风格无关手写文本生成:进一步评估了One-DM 在生成现实的手写文本图像时是否能够忽略风格模仿。为此计算了 IAM 测试集上的 FID 和 GS,条件与 ScrabbleGAN [13] 相同(FID: 20.72, GS: 2.56×10⁻²),能够生成具有随机样式的手写文本。具体而言,每种方法生成 25k 个随机样本以计算与 25k 个测试集样本的 FID,以及 5k 个随机样本进行 GS 计算,与 5k 个测试集样本进行比较。如前面表1所示,One-DM 在 FID 和 GS 指标上都取得了最佳结果,进一步展示了其生成更高质量手写文本图像的能力。

分析

一系列消融实验以分析One-DM。更多分析内容包括在不同风格背景下的泛化评估、通过 OCR 性能进行的生成质量评估、失败案例分析以及不同设计(如高频滤波器、风格-内容融合机制和风格输入样本长度)的效果。

拉普拉斯分支和门控机制的定量评估

在 IAM 数据集上进行了各种消融实验,以评估方法中不同组件的效果。定量结果见下表2。发现:(1) 同时引入拉普拉斯分支和门控机制提高了生成手写文本图像的质量,分别使 FID 提高了 3.92 和 2.71。 (2) 将拉普拉斯分支与门控机制结合使用进一步提升了生成性能。

拉普拉斯分支和门控机制的定性评估

为了进一步分析One-DM 中的各个模块,进行了视觉消融实验。如上表2所示,可以观察到,首先,添加门控机制后,背景噪声可以得到一定程度的抑制,结果是字符背景相对干净。然后,单独添加拉普拉斯分支帮助模型学习连笔连接和其他风格模式。最后,本文的方法整合了拉普拉斯分支和门控机制,能够生成最高质量的手写文本图像。

拉普拉斯分支的讨论

拉普拉斯分支包括两个关键组件:利用高频图像 和拉普拉斯对比学习损失 。在之前的消融研究中,它们总是一起使用。进一步进行探索实验,以解释为何它们不能分开使用。如下表3所示,结合 和 达到最大效果;分开使用会显著降低性能。没有 的指导,从 中提取判别性特征是困难的。同样,直接在原始图像上应用 会导致不理想的风格特征提取,因为原始图像的风格模式不如 清晰。

关于从单个参考样本中学习风格的讨论

对 One-DM 仅凭一个参考样本就能超越少量样本方法的生成性能感到相当惊讶。提供了潜在原因的分析如下。首先,One-DM 学习了一个有意义的风格潜在空间,其中可以基于已见风格生成新的风格(参见下图6)。然后,通过我们的风格增强模块,One-DM 有效地从单个示例中提取风格特征,并将其映射到特征空间中接近示例写作者的位置,从而生成高质量的风格化手写文本图像。

与最先进工业方法的比较

为了突出本文方法的优势,将 One-DM 与领先的工业图像生成方法进行比较,这些方法在极大的数据集上进行训练(包括大量以文本为中心的图像),包括两种显著的文本到图像生成方法:DALL-E3和 Stable Diffusion (SD),以及两种流行的风格迁移方法:Artbreeder 和 IP-Adapter(IP-A.),在 IAM 数据集上进行比较。

如下图7(a) 所示,本文的方法在风格模仿和内容保留方面优于工业方法。IP-A. 的表现最差,常常生成失真图像。Artbreeder 能够复制风格样本中的笔触颜色,但在内容保留方面表现不佳。DALL-E3 和 SD 能够生成内容准确的字符,但通常在风格细节上与参考不匹配,如字符间距和笔触宽度,其中 SD 常常生成额外的背景。此外,还比较了 Fzshouji,一个专为中文手写生成设计的先进工业方法。如图7(b) 所示,本文的方法在复制字符细节和墨水颜色方面优于 Fzshouji。

应用到其他语言

本节评估了One-DM 是否可以用于生成除英语以外的其他语言。进一步在中文(即 ICDAR2013 竞赛数据库)和日文(即 UP_Kuchibue 数据库)数据集上进行了实验。使用 FID 评估每个作者生成样本的质量,然后取平均。

对于中文手写字符生成任务,如下表5所示,发现One-DM 显著优于第二好的方法,FID 低了 7.37。从下图8(a) 中可以观察到,One-DM 生成的字符在几何形状和字符倾斜度上与目标图像非常匹配。相比之下,HWT 和 VATr 生成的手写文字存在明显的伪影,如模糊和结构塌陷。GANwriting 经常遗漏笔画。WordStylist 有时难以准确模仿风格模式,并倾向于生成带有错误部首的字符。

上面表5 和图8(b) 进一步验证了 One-DM 在日文手写生成中的有效性。同样达到了最低的 FID 分数,生成的日文样本在内容保留和风格模仿方面都表现出色。

进一步探讨了为什么只需一个样本的基于扩散的方法(如One-DM 和 WordStylist)在生成中文和日文字符方面明显优于少量样本的基于 GAN 的方法(如 GANwriting、HWT 和 VATr)。GAN 基础方法在中文和日文字符上的较低性能可能源于其原始卷积架构在处理复杂几何的中文和日文字符时遇到困难,正如 [60] 所指出的那样。相比之下,One-DM 将中文和日文字符的生成过程分解为更简单的步骤。例如,如下表6 所示,在扩散生成过程的早期阶段,模型首先尝试生成一个粗略的中文手写字符。然后,在条件指导下继续细化书写风格(如字符形状和笔画颜色),直到合成出令人满意的手写文字。

总结展望

本文介绍了一种新颖的 One-DM 方法用于手写文本生成,只需一个风格参考即可生成逼真的手写文本图像。通过结合风格参考中的高频成分来增强风格提取。对于具有明显风格模式的高频成分,采用拉普拉斯对比学习来捕捉更具判别性的风格特征。此外,门控机制提高了参考信息的传递效果,减少了背景噪声。One-DM 在多种语言脚本的生成中优于少样本方法。未来计划探索 One-DM 在字体生成和矢量字体创建任务中的潜力。

参考文献

[1] One-DM: One-Shot Diffusion Mimicker for Handwritten Text Generation

更多精彩内容,请关注公众号:AI生成未来

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/421644.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

索引:数据库查询性能提升的利器

在数据库的世界里,索引就像是一把神奇的钥匙,能够极大地提高查询性能。那么,什么是索引呢?它又是如何发挥作用的呢?让我们一起来揭开索引的神秘面纱。 一、什么是索引? 索引,简单来说&#xf…

【机器学习-监督学习】集成学习与梯度提升决策树

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈Python机器学习 ⌋ ⌋ ⌋ 机器学习是一门人工智能的分支学科,通过算法和模型让计算机从数据中学习,进行模型训练和优化,做出预测、分类和决策支持。Python成为机器学习的首选语言,…

chapter14-集合——(List-HashSet)——day18

目录 519-HashSet全面说明 520-数组链表模拟 521-HashSet扩容机制 重要 522-HashSet源码解读1 526-HashSet最佳实践 527-hashSet思考题 519-HashSet全面说明 题一、 两个tom都可以添加成功是因为这是两个对象 看源码做分析:不是直接指向常量池的吗?…

2024/9/9 408“回头看”:b树

B树是什么?有什么作用?B树的插入和删除具体细节是什么?除了B树还有一个是B+树、还是B-树,他们有什么区别,又有什么相同点? b树在王道考研查找这一章,所以他的主要作用就是查找。 在…

【python】OpenCV—Age and Gender Classification

文章目录 1、任务描述2、网络结构2.1 人脸检测2.2 性别分类2.3 年龄分类 3、代码实现4、结果展示5、参考 1、任务描述 性别分类和年龄分类预测 2、网络结构 2.1 人脸检测 输出最高的 200 个 RoI,每个 RoI 7 个值,(xx,xx&#x…

基于SpringBoot+Vue+MySQL的校园生活服务平台

系统展示 用户前台界面 管理员后台界面 系统背景 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。在互联网诞生之前,地域位置往往是人们思想上不可跨域的鸿沟,信息的…

C++当中的多态(一)

(一)什么是多态 1.现实中的多态: 所谓的多态在我们的生活当中其实很常见。举一个简单的例子:当我们需要买票的时候有很多种不同的票可以供我们购买,如果你是学生就可以享受半价票的优惠,如果你是VIP用户就可…

Leetcode 只出现一次的元素

题目要求我们找到数组中只出现了一次的元素,而其他元素都出现了两次。 解题思路: 我们可以使用位运算中的异或操作(XOR)。异或操作有以下两个特性: 相同的两个数字异或结果为0,例如:a ^ a 0…

Android12——Launcher3文件夹布局修改调整

文章声明:本文是笔者参考良心大佬作品后结合实际需求进行相应的定制,本篇主要是笔者记录一次解析bug笔记,文中可能会引用大佬文章中的部分图片在此声明,并非盈利目的,如涉嫌侵权请私信,谢谢! 大…

基于亲和性的 GPU 容器绑核策略 Copy

1.引言 在高性能计算和大规模并行任务处理中,GPU已经成为不可或缺的加速器。为了充分发挥GPU的计算能力,通过合理分配CPU核与GPU的绑定来优化CPU和GPU的关系至关重要。我们将探讨socket和NUMA(非统一内存访问)的概念,并…

力扣 — — 2555. 两个线段获得的最多奖品

力扣 — — 2555. 两个线段获得的最多奖品 一、题目描述 题目大意:给定一个数组prizePositions,数组中的值表示的是奖品的位置,每一个位置可以有多个奖品,并且设定一个线段的长度 K K K,要求从所有奖品位置中选择两个…

springboot 整合quartz定时任务

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pom的配置1.加注解二、使用方法1.工程图2.创建工具类三、controller 实现前言 提示:这里可以添加本文要记录的大概内容: 提示:以下是本篇文章正文内容,下面案例可供参考 一、pom的配…

【RabbitMQ】工作模式

工作模式概述 简单模式 简单模式中只存在一个生产者,只存在一个消费者。生产者生产消息,消费者消费消息。消息只能被消费一次,也称为点对点模式。 简单模式适合在消息只能被单个消费者处理的场景下存在。 工作队列模式(Work Qu…

Redisson分布式锁实现及原理详解

随着技术快速发展,数据规模增大,分布式系统越来越普及,一个应用往往会部署在多台机器上(多节点),在有些场景中,为了保证数据不重复,要求在同一时刻,同一任务只在一个节点…

浏览器中的JavaScript核心BOM(浏览器对象模型)重点掌握对象之History对象的属性与方法

History对象是用来把网页浏览历史用类似栈的方式进行表示。 这定义听起来非常的抽象,其实History对象的作用就跟浏览器的前进和后退很像,我们来用几幅图来理解一下。首先我们先回顾一下浏览器的返回上一个页面 和 跳转到下一个页面 这两个功能。 就类似…

JDBC使用

7.2 创建JDBC应用 7.2.1 创建JDBC应用程序的步骤 使用JDBC操作数据库中的数据包括6个基本操作步骤: (1)载入JDBC驱动程序: 首先要在应用程序中加载驱动程序driver,使用Class.forName()方法加载特定的驱动程序&#xf…

【题解单调队列优化dp】划分

划分 分析: 首先,我们目光着眼于部分分 我们尝试用 O ( n 3 ) O(n^3) O(n3)的朴素dp去解决这个问题 f [ i ] [ j ] 表示划分到第 i 个位置,且上一个位置是 j 的最小运行时间是多少 f[i][j]表示划分到第i个位置,且上一个位置是j的…

erlang学习: Mnesia Erlang数据库3

Mnesia数据库删除实现和事务处理 -module(test_mnesia). -include_lib("stdlib/include/qlc.hrl").-record(shop, {item, quantity, cost}). %% API -export([insert/3, select/0, select/1, delete/1, transaction/1,start/0, do_this_once/0]). start() ->mnes…

自然语言处理系列六十九》搜索引擎项目实战》搜索框架技术选型

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】 文章目录 自然语言处理系列六十九搜索引擎项目实战》搜索框架技术选型搜索…

(k8s)kubernetes 挂载 minio csi 的方式

一、安装Minio(Minio分布式集群搭建部署_minio集群最少几台-CSDN博客) 生成accessKeyID和secretAccessKey: 二、安装csi-s3插件(在k8s集群上) 首先我们把插件的yaml文件都下载下来,为了保证版本测试的一致性,我们下载…