文生图文字模糊怎么办 | AnyText解决文生图中文字模糊问题,完成视觉文本生成和编辑

2023-11-15 17:21:41 浏览数 (1)

最近,基于文本到图像的扩散模型已经取得了令人瞩目的成就。尽管当前合成图像的技术非常先进,能够生成具有高保真度的图像,但当关注生成图像中的文本区域时,合成文本通常包含模糊、不可读或错误字符,使得视觉文本生成成为该领域最具挑战性的问题之一。 为了解决这个问题,作者提出了AnyText,一种基于扩散的多语言视觉文本生成和编辑模型,专注于在图像中渲染准确且连贯的文本。 AnyText包括一个扩散管道,其主要包含两个元素:

  1. 辅助潜在模块
  2. 文本嵌入模块

前者使用文本的字符、位置和掩码图像等输入来为文本生成或编辑生成潜在特征。后者采用OCR模型将笔划数据编码为嵌入,与来自分词器的图像描述嵌入相结合,以生成与背景无缝融合的文本。作者在训练中采用了文本控制扩散损失和文本感知损失,以进一步提高写作准确性。据作者所知,AnyText是第一个解决多语言视觉文本生成的工作。 值得一提的是,AnyText可以与社区现有的扩散模型相结合,用于准确地渲染或编辑文本。经过广泛的评估实验,作者的方法在明显程度上优于其他所有方法。 此外,作者还贡献了第一个大规模的多语言文本图像数据集AnyWord-3M,该数据集包含300万个图像-文本对,并带有多种语言的OCR注释。基于AnyWord-3M数据集,作者提出了AnyText-benchmark,用于评估视觉文本生成准确性和质量。 代码:https://github.com/tyxsspa/AnyText

1 简介

基于扩散的生成模型展示了无与伦比的保真度、适应性和多才多艺。开源的图像生成模型(例如,Stable Diffusion,DeepFloyd-IF),以及商业服务(例如,DALL-E 2)在摄影、数字艺术、游戏、广告和电影制作等各个领域产生了巨大的影响。尽管生成扩散模型在图像质量方面取得了显著进步,但大多数当前开源模型和商业服务在生成结构良好、可读、易读的视觉文本方面仍存在困难。因此,这降低了它们的整体效用,并阻碍了潜在的应用。

当前开源扩散模型表现不佳的原因可以归结为几个因素。首先,大规模图像文本对数据集的缺乏,其中包括对文本内容的全面注释。现有的大规模图像扩散模型训练数据集,如LAION-5B,缺乏手动注释或OCR结果。其次,如刘等人(2023年)所指出的,开源扩散模型中使用的文本编码器,如CLIP文本编码器,采用基于词汇的分词器,无法直接访问字符,导致对单个字符的敏感性降低。最后,大多数扩散模型的损失函数旨在提高整体图像生成质量,而缺乏针对文本区域的专用监督。

为了应对上述困难,作者提出了_AnyText_框架和_AnyWord-3M_数据集。AnyText包括一个文本控制扩散管道,有两个组件:辅助潜在模块将辅助信息(如文本字符、位置和掩码图像)编码到潜在空间,以帮助文本生成和编辑;文本嵌入模块采用OCR模型将笔划信息编码为嵌入,然后与来自分词器的图像描述嵌入相结合,以生成与背景无缝融合的文本;最后,在图像空间中引入文本感知损失,以进一步提高写作准确性。

关于功能,作者有5个不同之处,这些不同之处在表1中有所概述:

  1. 多行:AnyText可以在用户指定的位置生成多行文本
  2. 变形区域:它使得在水平、垂直甚至曲线或不规则区域书写成为可能
  3. 多语言:作者的方法可以生成各种语言(如中文、英语、日语、韩语等)的文本
  4. 文本编辑:这为在所提供的图像内的文本内容提供修改的能力,同时保持一致的字体风格
  5. 即插即用:AnyText可以与稳定的扩散模型无缝集成,并赋予它们生成文本的能力。

表1:根据功能比较AnyText与其他竞争对手

图1:AnyText的示例

对于文本生成,AnyText可以将提示中的指定文本渲染到指定的位置,并生成视觉上令人愉悦的图像。至于文本编辑,AnyText可以在输入图像中指定位置修改文本内容,同时保持周围文本风格的统一。对于提示中的非英语单词,括号中提供了翻译。更多内容请参阅A.5。

2 相关工作

文本到图像合成

近年来,使用去噪扩散概率模型进行文本到图像合成的进展取得了显著的成就。这些模型已经超越了简单的图像生成,并导致了交互式图像编辑的发展。这些模型还导致了添加其他条件的技术,如口罩和深度图。研究还探索了多条件可控制合成的领域。将主体合成到场景中面临更具体的挑战,如ELITE,UMM-Diffusion, InstantBooth,它们利用CLIP图像编码器的特征来将视觉概念编码到文本词嵌入中。同样,DreamIdentity开发了一种专门设计的图像编码器,以实现更好的性能,以便在词嵌入增强方案中使用。

文本生成

图像合成的进步是巨大的,但将可读文本集成到图像中仍然具有挑战性。最近的研究主要关注文本生成的三个关键方面:

控制条件

在潜在空间中引入字符条件是许多最近方法的主要方法。GlyphDraw最初使用显式字符图像作为条件,并在中心渲染字符。GlyphControl进一步扩展了这一方法,通过根据其位置对文本进行对齐,这也以隐式方式包含了字体大小和文本框位置。TextDiffuser利用字符级别的分割掩码作为控制条件,并且除了这个条件之外,还引入了一个遮罩图像,同时学习文本生成和文本内插分支。在作者的工作中,作者采用与GlyphControl类似的方法渲染字符图像,但将位置和遮罩图像作为额外的条件。这种设计使得AnyText能够在曲线或不规则区域内生成文本,并且同时处理文本生成和编辑。

文本编码器

文本编码器在生成准确视觉文本中起着关键作用。最近的方法如Imagen,eDiff-I和Deepfloyd通过利用大规模语言模型(例如,T5-XXL)实现了令人印象深刻的结果。然而,大多数图像生成模型仍然依赖于字符盲文本编码器,即使是字符感知文本编码器在处理非拉丁文本生成(如中文、日语和韩语)时也存在困难。

为解决中文渲染问题,GlyphDraw在中文图像上微调文本编码器,并利用CLIP图像编码器进行字符嵌入。Diffuse用预训练的图像编码器替换文本编码器,以在图像编辑场景中提取字符。

在AnyText中,作者提出了一种将文本编码器集成语义和字符信息的新方法,旨在实现生成的文本与背景的无缝集成,并实现多语言文本生成。

感知监督

OCR-VQGAN利用预训练的OCR检测模型从图像中提取特征,并通过约束多个中间层的差异来监督文本生成。相比之下,TextDiffuser利用字符级别的分割模型来监督潜在空间中每个生成字符的准确性。这种方法需要单独训练分割模型,并且字符类别也有限。在AnyText中,作者利用一种擅长于笔划和拼写的OCR识别模型来监督指定文本区域内的文本生成。这种方法提供了一种更直接、更有效的监督形式,以确保准确和高质量的文本生成。

3 方法论

如图2所示,AnyText框架包括一个文本控制扩散管道,有两个主要组件(辅助潜在模块和文本嵌入模块)。总体训练目标定义为:

mathcal{L}=mathcal{L}_{td} lambdamathcal{L}_{tp} tag{1}

其中

mathcal{L}_{td}

mathcal{L}_{tp}

分别是文本控制扩散损失和文本感知损失,

lambda

用于调整两个损失函数之间的权重比例。在以下各节中,作者将详细介绍文本控制扩散管道、辅助潜在模块、文本嵌入模块和文本感知损失。

文本控制扩散管道

在文本控制扩散管道中,作者通过应用变分自动编码器(VAE)

mathcal{E}

在输入图像

x_{0}inmathbb{R}^{Htimes Wtimes 3}

上生成潜在表示

z_{0}inmathbb{R}^{htimes wtimes c}

。在这里,

htimes w

表示由因子

f

下采样得到的特征分辨率,

c

表示潜在特征维度。然后,通过逐步添加噪声,潜在扩散算法在

z_{0}

上生成噪声潜在图像

mathsf{z}_{t}

,其中

t

表示时间步。

给定一组条件,包括时间步

t

,由辅助潜在模块产生的辅助特征

mathsf{z}_{a}inmathbb{R}^{htimes wtimes c}

,以及由文本嵌入模块产生的文本嵌入

mathbf{c}_{te}

,文本控制扩散算法应用一个网络

epsilon_{theta}

来预测在噪声潜在图像

mathsf{z}_{t}

上添加的噪声,目标为:

mathcal{L}_{td}=mathbb{E}_{mathsf{z}_{0},mathsf{z}_{a},mathbf{c}_{te},mathbf{t},csimmathcal{N}(0,1)}left[|epsilon-epsilon_{theta}(mathsf{z}_{t}, mathsf{z}_{a},mathbf{c}_{te},mathbf{t})|_{2}^{2}right]

其中

mathcal{L}_{td}

是文本控制扩散损失。更具体地说,为了控制文本的生成,作者将

z_{a}

z_{t}

相结合,并将其输入到UNet的编码层,称为TextControllNet中可训练的副本,同时将

z_{t}

输入到参数冻结的UNet中。这使得TextControllNet能够专注于文本生成,同时保留基础模型在没有文本的情况下生成图像的能力。

此外,通过模块化绑定,各种基础模型也可以生成文本。

辅助潜在模块

在AnyText中,作者使用三种辅助条件来生成潜在特征图

mathsf{z}_{a}

:字符

l_{g}

,位置

l_{p}

和遮罩图像

l_{m}

。字符

l_{g}

是通过使用统一的字体风格(即“Arial Unicode”)在图像上渲染文本来生成的,基于它们的位置。在曲线或不规则区域的准确字符渲染是非常具有挑战性的。

因此,作者通过根据文本位置的外接矩形渲染字符来简化这个过程。通过结合专门的

l_{p}

位置,作者仍然可以在非矩形区域内生成文本,如图3所示。位置

l_{p}

是通过在图像上标记文本位置来生成的。在训练阶段,文本位置可以从OCR检测或手动注释中获得。在推理阶段,

l_{p}

是从用户的输入中获得的,用户指定文本生成的 desired regions。

此外,位置信息允许文本感知损失精确地针对文本区域进行优化。关于这一点的详细信息将在第3.4节中讨论。最后一种辅助信息是遮罩图像

l_{m}

,它指示在扩散过程中应该保留图像的哪个区域。在文本到图像合成中,遮罩图像可以用来控制扩散过程,以保留图像中的重要区域。

如图2所示,AnyText框架包括文本控制扩散管道、辅助潜在模块、文本嵌入模块和文本感知损失。

在遮罩模式下,

l_{m}

被设置为完全遮罩,而在文本编辑模式下,

l_{m}

被设置为遮罩文本区域。在训练过程中,文本编辑模式比例以概率

sigma

随机切换。

为了将图像条件集成进来,作者使用字符块和位置块对字符

l_{g}

和位置

l_{p}

进行下采样,并使用VAE编码器

varepsilon

对遮罩图像

l_{m}

进行下采样。字符块

G

和位置块

P

都包含多个堆叠的卷积层。将这些图像条件转换为与

z_{t}

的空间大小相匹配的特征图后,作者使用卷积融合层

f

l_{g}

l_{p}

l_{m}

合并,得到一个生成的特征图,称为

z_{a}

,可以表示为:

boldsymbol{z}_{a}=f(G(l_{g}) P(l_{p}) varepsilon(l_{m})) tag{3}

其中

boldsymbol{z}_{a}

boldsymbol{z}_{t}

具有相同的通道数。

文本嵌入模块

文本编码器在从描述中提取语义信息方面表现出色,但是要渲染的文本的语义信息则相对较弱。此外,大多数预训练文本编码器都是针对拉丁语数据进行训练,并且不能很好地理解其他语言。在AnyText中,作者提出了一种新颖的方法来解决多语言文本生成的多语言问题。

具体来说,作者将字符线条渲染成图像,编码字符信息,并替换它们的嵌入来自描述标记。这些文本嵌入并不是按字符进行学习的,而是利用一个预训练的视觉模型,即PP-OCRv3 Li等人(2022年)的识别模型。替换后的嵌入作为标记被输入到基于变换器的文本编码器中,以获得融合的中间表示,然后使用交叉注意力机制将其映射到UNet的中间层。由于利用图像渲染而不是仅仅依赖特定语言的文本编码器,作者的方法在生成多语言文本方面显著提高了性能,如图4所示。

接下来,作者将详细解释文本嵌入模块。将文本字符和描述语义信息结合在一起定义的表示

boldsymbol{c}_{te}

称为

boldsymbol{c}_{te}=tau_{theta}(phi(y^{prime}),xi(gamma_{theta}(e_{g}))) tag{4}

其中

y^{prime}

是每个需要生成的文本行(用双引号括起)的处理后的输入描述

y

,每个文本行都被替换为一个特殊的占位符

S_{*}

。然后,在分词和嵌入之后,

如图4所示,这是在多种语言中生成文本的示意图。

如图3所示,这是在曲线或不规则区域内生成文本的示意图,左边的图像是由用户提供的文本位置。

lookup被定义为

phi(cdot)

,描述符嵌入

boldsymbol{c}_{te}

被获得。然后,每个文本行都被渲染到一张图像上,表示为

e_{g}

。请注意,

e_{g}

是通过将单个文本行渲染到图像的中央生成的,而

l_{g}

在3.2节中是通过将所有文本行渲染到一个位于它们位置上的单独图像上生成的。

图像

e_{g}

随后被输入到OCR识别模型

gamma_{theta}

中,以提取文本嵌入,然后应用线性变换

xi

以确保其大小与描述符嵌入匹配,并将其替换为

S_{*}

的嵌入。最后,所有标记嵌入使用CLIP文本编码器

tau_{theta}

进行编码。

文本感知损失

作者提出了一种文本感知损失,以进一步提高文本生成的准确性。假设

varepsilon_{t}

表示去噪网络

epsilon_{theta}

预测的噪声,作者可以将时间步

t

和噪声潜在图像

z_{t}

组合来预测

z_{0}

,如Ho等人(2020年)所述。这可以进一步与VAE解码器结合,以获得原始输入图像的近似重建,表示为

x^{prime}_{0}

。通过从潜在空间转换到图像空间,作者可以在像素级别进一步监督文本生成。

借助位置条件

l_{p}

,作者可以准确地定位生成的文本区域。作者旨在将这个区域与原始图像

x_{0}

中的对应区域进行比较,并专注于文本本身的书写正确性,排除背景、字符位置偏差、颜色或字体风格等因素。因此,作者使用在3.3节中提到的PP-OCRv3模型作为图像编码器。

通过在位置

p

x_{0}

x^{prime}_{0}

进行操作,例如裁剪、仿射变换、填充和归一化,作者可以得到图像

p_{g}

p^{prime}_{g}

,这些图像将用作OCR模型的输入。作者使用全连接层之前的特征图

hat{m}_{p},hat{m^{prime}}_{p}inmathbb{R}^{htimes wtimes c}

来分别表示原始图像和预测图像在位置

p

的文本写作信息。文本感知损失可以表示为:

mathcal{L}_{tp}=sum_{p}frac{varphi(t)}{hw}sum_{h,w}|hat{m}_{p}-hat{m^{ prime}}_{p}|_{2}^{2} tag{5}

通过施加均方误差(MSE)惩罚,作者试图最小化预测图像和原始图像所有文本区域之间的差异。由于时间步

t

与预测图像

x^{prime}_{0}

中的文本质量相关,作者需要设计一个权重调整函数

varphi(t)

。研究发现,将

varphi(t)

设置为

bar{alpha}_{t}

是一个好的选择,其中

bar{alpha_{t}}

是在扩散过程中引入的系数。

4 数据集和基准

目前,缺乏专门针对文本生成任务的公公开可用的数据集,尤其是涉及非拉丁语的数据集。因此,作者提出_AnyWord-3M_,这是一个大规模的多语言数据集,来源于公开图像。这些图像的来源包括Noah-Wukong,LAION-400M,以及用于OCR识别任务的图像数据集,如ArT,COCO-Text,RCTW,LSVT,MLT,MTWI,ReCTS。

这些图像涵盖了包含文本的多样化场景,包括街道视图、书籍封面、广告、海报、电影帧等。除了OCR数据集,其中注释信息直接使用外,其他所有图像都使用PP-OCRv3的检测和识别模型进行处理。然后,使用BLIP-2重新生成描述符。请参阅附录A.2节关于数据集准备方面的更多细节。

通过严格的筛选规则和仔细的后期处理,作者得到了总共3034486张图像,超过900万行文本和超过2000万字符或拉丁单词。作者从Wukong和LAION子集中随机提取了1000张图像,创建了一个名为AnyText-benchmark的评估集。

这两个评估集分别用于评估中文和英文生成的准确性和质量。剩下的图像用作训练集,称为AnyWord-3M,其中大约有1600万张中文图像,1390万张英文图像,还有其他语言(包括日语、韩语、阿拉伯语、孟加拉语和印地语)的1000张图像。请参阅附录A.3节进行详细统计分析和随机选择的示例图像。

对于AnyText-benchmark,作者使用了三个评估指标来评估文本生成的准确性和质量。首先,作者采用了句子准确性(Sen. Acc)指标,其中每个生成的文本行根据指定的位置进行裁剪,并输入到PP-OCRv3识别模型中以获得预测结果。只有在预测文本完全匹配实际文本时,才认为它是正确的。

此外,作者采用了一个不那么严格的度量标准,即归一化编辑距离(NED),以测量两个字符串之间的相似性。这两个指标使用OCR模型进行评估。然而,仅依靠OCR不能完全捕捉到图像质量。因此,作者引入了Frechet inception距离(FID)来评估生成图像和实际图像之间的分布差异。

5 实验

实验细节

作者的训练框架是基于ControlNet1实现的,模型的权重是从SD1.52中初始化的。作者在AnyWord-3M数据集上训练模型10个Epoch,使用了8个Tesla A100 GPU。作者采用了一种渐进微调策略,其中编辑分支在前5个Epoch中被关闭,然后以概率

sigma=0.5

在接下来的3个Epoch中激活。

在最后2个Epoch中,作者启用了感知损失,权重系数为

lambda=0.01

。字符

l_{g}

l_{p}

的尺寸分别设置为1024x1024和512x512,而

e_{g}

p_{g}

p^{prime}_{g}

都设置为80x512。作者使用AdamW优化器,学习率为2e-5,批量大小为48。在采样过程中,根据A.3节中的统计信息,从每个图像中选择最多5个文本行和每个文本行中的20个字符来渲染到图像上,因为这种设置可以覆盖数据集中大多数情况。

比较结果

1 定量结果

作者使用在Sec. 4中提到的基准和指标评估了现有的竞争方法,包括ControlNet,TextDiffuser和GlyphControl,并在表2中提供了定量比较结果。此外,作者还在附录A.4中提供了AnyText-benchmark中的一些生成的图像。

从结果中,作者可以观察到AnyText在中文和英文文本生成方面都明显优于竞争对手,在OCR准确性和逼真度(FID)方面都取得了很好的成绩。

值得一提的是,作者的训练集只包含1390万英语数据,而TextDiffuser和GlyphControl是针对1000万纯英语数据进行训练的。一个有趣的现象是,ControlNet(带有cany控制)在背景中随机生成伪文本,如Chen等人(2023b)所使用的那样利用OCR检测和识别模型进行评估可能会得到较低的评估分数。

然而,在作者的度量中,作者只关注指定的文本生成区域,作者发现ControlNet在这些区域表现良好。然而,ControlNet生成的文本风格显得生硬和单调,就像被贴在背景上一样,导致FID得分较低。

关于中文文本生成,TextDiffuser和GlyphControl只能在中文文本中生成一些拉丁字符、标点符号或数字。在AnyText中,作者的中文文本生成准确率超过了所有其他方法。在严格的Sen. ACC评估指标中,作者实现了超过70%的准确率。此外,AnyText获得了最低的FID分数,表明生成的文本具有优越的逼真度。

Table 2: 定量比较 AnyText 和竞争方法。† 是在LAION-Glyph-10M 上训练的,‡ 是在TextCaps-5k 上进行微调的。所有竞争方法都使用其正式发布的模型进行评估。

2 定性结果

关于英语文本的生成,作者与文本到图像生成的领域中最先进的模型或API进行了比较,如SD-XL1.0,Bing Image Creator3,DALL-E2和DeepFloyd IF,如图5所示。这些模型在文本生成方面相对于以前的工作取得了显著的改进。

然而,它们与专业文本生成模型之间仍然存在相当大的差距。关于中文文本的生成,笔画的复杂性和字符类别的巨大数量都构成了巨大的挑战。GlyphDraw是第一个解决这个任务的方法。由于缺乏开源模型或API,作者无法进行定量评估,而是依靠GlyphDraw论文中的示例进行定性比较。

同时,由于ControlNet也可以有效地生成中文文本,作者也将其包括在内。如图6所示,AnyText在生成文本与背景的融合方面显示出优越性,例如刻在石头上的文本,带有单词的招牌反射,黑板上的粉笔字风格和受服装皱褶影响的稍微扭曲的文本。

3 消融研究

在这部分中,作者从AnyWord-3M中提取了200k张图像(其中160k张为中文),作为训练集,并使用AnyText-benchmark中的中文评估数据集来验证AnyText中每个子模块的有效性。每个模型在8张Tesla V100 GPU上训练了15个Epoch,总共需要60小时。训练参数与5.1节中提到的一致。通过分析表3中的实验结果,作者得出以下结论:

编辑:比较Ex.1和Ex.2,作者观察到当启用编辑分支时,稍微降低了性能。这是因为文本生成和编辑是两个不同的任务,启用编辑分支会增加模型收敛的难度。为了专注于分析文本生成部分,作者在所有后续实验中通过将概率参数

sigma

设置为0来禁用编辑。 位置:比较Ex.3和Ex.4,尽管在

l_{q}

中渲染的文本包含位置信息,但包含更准确的位置

l_{p}

可以进一步改进性能,并使模型能够在不规则区域内生成文本。

定量结果

文本嵌入:

在Exps.1到2中,描述符直接由CLIP文本编码器编码。在Exp.3中,作者使用文本嵌入模块将图像描述符的语义与文本的笔划信息融合在一起,导致Sen. Acc指标显著增加了26.6%,这表明该方法的显著优势。

文本感知损失:

Exp.

5sim 7

验证了文本感知损失的有效性。在进行三个实验后,作者发现

lambda

=0.01取得了最佳结果,与Exp.3相比,在Sen. Acc指标上提高了4.7%。值得注意的是,感知损失需要从潜在空间转换到图像空间,这会减慢训练过程。

因此,对于Exp.

5sim 7

,作者从Exp.3的 epoch 13 开始训练,并在剩余的2个epoch中只进行训练。尽管如此,感知损失仍然取得了显著的改进。

6 结论与限制

在本文中,作者深入研究了文本到图像合成的广泛研究问题——文本生成。为了应对这个挑战,作者提出了一种新颖的方法,名为AnyText,它是一种基于扩散的多语言文本生成和编辑框架。作者的方法包括一个辅助潜在模块,它将文本的字符、位置和遮罩图像合并成一个潜在空间。

此外,在文本嵌入模块中,作者利用OCR模型提取笔划信息,并将其与图像描述符的语义细节合并,从而增强文本和背景之间的一致性。为了提高写作准确性,作者在训练中采用了文本控制扩散损失和文本感知损失。在训练数据方面,作者提出了AnyWord-3M数据集,该数据集包括多种语言的300万文本图像对,带有OCR注释。为了证明AnyText的优越性能,作者在提出的AnyText-benchmark上进行了全面的实验,显示出它相对于现有方法的优越性。

7 参考

[1].ANYTEXT: MULTILINGUAL VISUAL TEXT GENERATION AND EDITING.

0 人点赞