阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题

ANYTEXT: MULTILINGUAL VISUAL TEXT GENERATION AND EDITING

文生图中的文字生成问题一直困扰着广大AIGC应用,今日,阿里发表了AnyText针对这个问题进行了优化。接下来看看AnyText是否能解决文字生成模糊、错误等问题。

论文地址:https://arxiv.org/pdf/2311.03054.pdf

Github地址:https://github.com/tyxsspa/AnyText

演示地址:https://modelscope.cn/studios/damo/studio_anytext/summary

 

摘要

尽管当前合成图像的技术非常先进,能够生成高保真度的图像,但在生成图像中的文本区域时效果仍然不够理想,合成的文本通常包含模糊、不可读或错误的字符,使得视觉文本生成成为该领域最具挑战性的问题之一。为了解决这个问题,我们提出了AnyText,专注于在图像中呈现准确和连贯的文本。AnyText包括一个扩散流程,其中包含两个主要元素:辅助潜在模块和文本嵌入模块。前者使用文本字形、位置和遮罩图像等输入来生成用于文本生成或编辑的潜在特征。后者使用OCR模型将笔画数据编码为嵌入向量,与来自分词器的图像标题嵌入向量混合,生成与背景无缝融合的文本。我们采用文本控制扩散损失和文本感知损失进行训练,以进一步提高书写准确性。AnyText可以书写多种语言的字符,据我们所知,这是第一个解决多语言视觉文本生成的工作。值得一提的是,AnyText可以与社区中现有的扩散模型进行连接,以实现准确渲染或编辑文本。经过广泛的评估实验,我们的方法在性能上超过了所有其他方法。此外,我们贡献了第一个大规模的多语言文本图像数据集AnyWord-3M,其中包含300万个图像-文本对和多种语言的OCR注释。基于AnyWord-3M数据集,我们提出了用于评估视觉文本生成准确性和质量的AnyText-benchmark。

简介

本文介绍了AnyText框架和AnyWord-3M数据集,旨在解决现有开源扩散模型在生成文本方面的表现不佳的问题。该框架包括辅助潜在模块、文本嵌入模块和文本感知损失,可以生成多行、变形区域、多语言的文本,并提供文本编辑和插拔式集成功能。该框架的优势在于提高了文本生成的准确性和可读性,可以应用于摄影、数字艺术、游戏、广告和电影制作等领域。

《阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题》- 投稿作者:灵度智能 - 发布于:GetAI社区

相关工作

文本到图像合成。近年来,在文本到图像合成方面取得了重大进展,包括使用去噪扩散概率模型进行图像合成和交互式图像编辑等方面的研究。研究还探索了多条件可控合成的领域,如使用掩模和深度图等附加条件。将主题合成到场景中存在更具体的挑战,一些方法利用CLIP图像编码器的特征将视觉概念编码为文本词嵌入。图像合成取得了重大进展,但将易读的文本整合到图像中仍然具有挑战性。

文本生成。最近的研究集中在文本生成的三个关键方面:控制条件、文本扩散和位置。在我们的工作中,我们采用了类似于GlyphControl的方式来渲染字形图像,并引入了位置和掩模图像作为附加条件,以实现在曲线或不规则区域生成文本并同时处理文本生成和编辑。

文本编码器在生成准确的视觉文本方面起着关键作用。最近的方法利用大规模语言模型实现了令人印象深刻的结果,但大多数图像生成模型仍然依赖于盲目字符的文本编码器。针对中文渲染,GlyphDraw在中文图像上微调文本编码器,并利用CLIP图像编码器进行字形嵌入。DiffUTE在图像编辑场景中用预训练的图像编码器替换文本编码器来提取字形。AnyText提出了一种新方法,通过整合语义和字形信息来转换文本编码器,实现生成文本与背景的无缝集成和多语言文本生成。

在感知监督方面,OCR-VQGAN利用预训练的OCR检测模型从图像中提取特征,并通过约束多个中间层之间的差异来监督文本生成。TextDiffuser利用字符级分割模型来监督潜空间中每个生成字符的准确性,但需要单独训练分割模型,并且字符类别也受限。AnyText利用在笔画和拼写方面表现出色的OCR识别模型,仅在指定的文本区域内监督文本生成,提供了更直接和有效的监督形式,以确保准确和高质量的文本生成。

方法

《阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题》- 投稿作者:灵度智能 - 发布于:GetAI社区

AnyText框架包括文本控制扩散流水线和两个主要组件(辅助潜在模块和文本嵌入模块)。训练目标由文本控制扩散损失和文本感知损失组成,通过调整权重比例λ来平衡两个损失函数。接下来的章节将详细介绍文本控制扩散流水线、辅助潜在模块、文本嵌入模块和文本感知损失。

《阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题》- 投稿作者:灵度智能 - 发布于:GetAI社区

文本控制扩散管道

文本控制扩散管道的工作原理,通过变分自编码器生成潜在表示,然后逐步添加噪声产生噪声潜在图像。通过条件包括时间步长、辅助特征和文本嵌入,应用网络预测噪声,以控制文本生成。通过模块化绑定,可以生成各种基本模型。

《阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题》- 投稿作者:灵度智能 - 发布于:GetAI社区

辅助潜在模块

《阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题》- 投稿作者:灵度智能 - 发布于:GetAI社区

AnyText使用三种辅助条件来生成潜在特征图z a:字形l g,位置l p和掩码图像l m。通过在图像上根据位置渲染字符,可以简化字符在曲线或不规则区域的准确渲染过程。通过引入专门的位置l p,我们仍然可以在非矩形区域生成文本。位置l p是通过在图像上标记文本位置来生成的。在训练阶段,文本位置可以通过OCR检测或手动注释获得。在推理阶段,l p是从用户的输入中获得的,用户可以指定所需的文本生成区域。

此外,位置信息可以使文本感知损失精确地定位到文本区域。最后一个辅助信息是掩码图像l m,它指示在扩散过程中应该保留图像中的哪个区域。在文本到图像模式下,l m被设置为完全掩码,而在文本编辑模式下,l m被设置为掩盖文本区域。

在训练过程中,文本编辑模式的比例会以概率σ随机切换。为了将基于图像的条件纳入其中,我们使用字形块和位置块来下采样字形l g和位置l p,使用VAE编码器ε来下采样掩码图像l m。字形块G和位置块P都包含几个堆叠的卷积层。将这些基于图像的条件转换为与z t的空间大小匹配的特征图后,我们使用卷积融合层f将l g,l p和l m合并,得到生成的特征图z a。

《阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题》- 投稿作者:灵度智能 - 发布于:GetAI社区

文本嵌入模块

《阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题》- 投稿作者:灵度智能 - 发布于:GetAI社区

文本编码器在提取标题的语义信息方面表现出色,但要渲染的文本的语义信息微不足道。此外,大多数预训练的文本编码器都是在拉丁语为基础的数据上进行训练的,对其他语言的理解能力较差。在AnyText中,我们提出了一种解决多语言文本生成问题的新方法。具体而言,我们将字形线条渲染成图像,编码字形信息,并从标题标记中替换它们的嵌入。文本嵌入不是逐个字符学习的,而是利用预训练的视觉模型,特别是PP-OCRv3 Li等人(2022)的识别模型。

然后,替换的嵌入被馈送到基于变压器的文本编码器中作为标记,以获得融合的中间表示,然后使用交叉注意机制将其映射到UNet的中间层。由于使用图像渲染而不仅仅依赖于特定语言的文本编码器,我们的方法显著增强了多语言文本的生成,如图4所示。接下来,我们详细解释文本嵌入模块。将结合文本字形和标题语义信息的表示c_te定义为

《阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题》- 投稿作者:灵度智能 - 发布于:GetAI社区

其中y’是经过处理的输入标题y,其中要生成的每个文本行(用双引号括起来)被替换为特殊占位符S*。然后通过标记化和嵌入查找(表示为ϕ(·)),获得标题嵌入。然后,将每个文本行渲染到图像上,表示为e_g。请注意,e_g仅通过将单个文本行渲染到图像中心来生成,而第3.2节中的l_g是通过将所有文本行渲染到单个图像上的位置来生成的。然后,将图像e_g馈入OCR识别模型γ_θ以提取最后一个全连接层之前的特征作为文本嵌入,然后应用线性变换ξ以确保其大小与标题嵌入匹配,并将其替换为S*的嵌入。最后,使用CLIP文本编码器τ_θ对所有标记嵌入进行编码。

文本感知损失

本文提出了一种文本感知损失来进一步提高文本生成的准确性。该方法通过将时间步t和噪声潜在图像z_t结合起来预测z_0,并利用VAE解码器获得原始输入图像的近似重构。通过将潜在空间转换为图像空间,可以在像素级别进一步监督文本生成。该方法利用位置条件l_p精确定位生成文本的区域,并使用PP-OCRv3模型作为图像编码器。通过处理原始图像x_0和预测图像x’_0,可以获得用于OCR模型的输入图像p_g和p’_g。

《阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题》- 投稿作者:灵度智能 - 发布于:GetAI社区

通过MSE惩罚,可以尝试在所有文本区域中最小化预测图像和原始图像之间的差异。时间步t与预测图像x’_0中的文本质量有关,需要设计一个权重调整函数φ(t)。将φ(t)设置为α¯t是一个不错的选择,其中α¯t是Ho等人介绍的扩散过程系数。

数据集和基准

提出了一个名为AnyWord-3M的大规模多语言数据集,用于文本生成任务。该数据集包含来自公共图像的超过3百万张图片,其中约1.6百万张为中文,1.39百万张为英文,还有其他语言的图片。通过严格的过滤规则和精细的后处理,得到了超过9百万行文本和超过2千万个字符或拉丁单词。使用三种评估指标来评估文本生成的准确性和质量,包括句子准确率、标准化编辑距离和Frechet Inception距离。其中,句子准确率和标准化编辑距离用于评估OCR识别的准确性,而Frechet Inception距离用于评估生成图像与真实图像之间的分布差异。

实验

实现细节

我们基于ControlNet的训练框架,使用AnyWord-3M数据集进行训练,采用渐进微调策略和感知损失,生成高质量的文本图像。最近,作者发现OCR注释对文本生成指标有重要影响,进行了改进并发布了AnyText-v1.1。注意,本文中的示例图像仍由v1.0模型生成。

对比结果

定量结果

AnyText是一个文本生成模型,通过评估与其他方法的比较,发现在OCR准确性和真实性方面,AnyText在中英文文本生成方面表现出色。与其他方法相比,AnyText在指定的文本生成区域表现良好,但生成的文本风格呈现刻板和单调的特点。在中文文本生成方面,AnyText的准确性超过其他方法,并且生成的文本具有更高的真实性。

《阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题》- 投稿作者:灵度智能 - 发布于:GetAI社区

定性结果

本文比较了文本到图像生成领域的最新模型和API,如SD-XL1.0、Bing Image Creator 3、DALL-E2和DeepFloyd IF,发现它们与专业文本生成模型之间仍存在较大差距。对于生成中文文本,由于笔画复杂和字符种类繁多,GlyphDraw Ma等人提出了一种新方法。本文无法进行定量评估,但通过与GlyphDraw论文中的例子进行比较,发现AnyText在生成文本与背景的融合方面表现优异。同时,ControlNet也能有效地生成中文文本。

《阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题》- 投稿作者:灵度智能 - 发布于:GetAI社区

《阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题》- 投稿作者:灵度智能 - 发布于:GetAI社区

消融分析

通过对200k张图片进行训练和使用中文评估数据集进行验证,得出了以下结论:编辑分支会增加模型收敛难度,因此在后续实验中禁用了编辑分支;使用预训练OCR模型可以显著提高模型性能;加入更准确的位置信息可以进一步提高模型性能;使用感知损失可以提高模型性能,但会减慢训练速度。

《阿里达摩院发表AnyText,解决文生图中文字生成模糊、错误问题》- 投稿作者:灵度智能 - 发布于:GetAI社区

总结和限制

本文介绍了一种名为AnyText的文本生成和编辑框架,它是一种基于扩散的多语言文本生成方法。该方法结合了文本字形、位置和遮罩图像,利用OCR模型提取字形信息并与图像标题的语义细节相结合,提高了文本与背景的一致性。同时,采用了文本控制扩散损失和文本感知损失来提高写作准确性。作者还提出了一个包含300万个文本-图像对的数据集AnyWord-3M,用于训练和测试。实验结果表明,AnyText在文本生成方面表现优异。未来的研究方向包括探索极小字体的文本生成和可控属性的文本生成。

0

评论0

请先
显示验证码