当前位置:   article > 正文

【带文字的图像生成-附开源代码】AIGC 如何在图像中准确生成文字?图像篇(下)_udifftext: a unified framework for high-quality te

udifftext: a unified framework for high-quality text synthesis in arbitrary

“文字图像生成(Text-image generation)”即生成带有指定文字的图像。如下图所示,市面常见的通用文生图很难准确地生成带有指定文字的图像。文字图像生成也被称为文本渲染(Text rendering)。
上图源于论文《TextDiffuser: Diffusion Models as Text Painters》(NeurlPS 2023)
参考排版研究论文合集(Typography Research Collection) [ 1 ] ^{[1]} [1] 和文本图像的 Diffusion 论文合集 [ 2 ] ^{[2]} [2],相关研究可分为视觉文字生成与编辑(Visual Text Generation and Editing)和字体风格迁移与字形生成(Font Stye Transfer and Glyph Generation)两类:

  • 第一类的输出结果是带有文字的图像,图中带有文字,文字不一定是主体。并且,输出结果大多为 .png/.jpg 等格式的位图/栅格图像(raster image)。(如文章第一张图)

  • 第二类的输出结果是纯文字的图像,或者各类创意字体,文字就是主体。并且,输出结果大多为.svg 格式的矢量图(vector image)或位图。(如下图)
    上图源于论文《DS-Fusion: Artistic Typography via Discriminated and Stylized Diffusion》(ICCV 2023)

上篇中介绍了纯文字(字体、文字作为主体)的最新研究,本篇则介绍生成文字图像(文字是图像中的一部分)的最新工作,均是带有开源代码的工作。(上篇指路:https://blog.csdn.net/weixin_44212848/article/details/137567675?spm=1001.2014.3001.5502)

GlyphControl

  • 论文题目:GlyphControl: Glyph Conditional Control for Visual Text Generation(发表于NeurIPS 2023)
    在这里插入图片描述
    论文中的示例效果如下
    在这里插入图片描述
  • 背景:最近,基于扩散的文生图模型越来越受到关注,这些模型能够生成连贯和格式合理的视觉文本。针对视觉文本任务,作者提出了一种称为 GlyphControl 的高效方法。
  • 方法概述:
    • 不同于现有方法,现有方法依赖于 ByT5 [ 3 ] ^{[3]} [3] 等字符感知文本编码器,并需要重新训练文本到图像模型,该方法则利用额外的字形条件信息来增强现成的 Stable-Diffusion 模型在生成准确的视觉文本方面的性能。
    • 通过结合字形指令,用户可以根据自己的特定要求定制生成文本的内容、位置和大小。
    • 为了促进视觉文本生成的进一步研究,作者构建了一个名为 LAION-Glyph 的训练基准数据集。
  • 结论:通过衡量基于 OCR 的指标、CLIP 分数和生成的视觉文本的 FID 来评估方法的有效性。定量评估表明,与最近的 DeepFloyd IF 方法相比,GlyphControl 在 OCR 准确性、CLIP 分数和 FID 方面表现更好。

在这里插入图片描述
整体流程:

  • (a) GlyphControl 架构包括一个预训练的 Stable Diffusion 模型作为“锁定副本”,以及一个随机初始化的 ControlNet 模型作为“可训练副本”。
  • (b) 在训练过程中,输入图像 x x x 经过 VAE 编码器编码,生成潜在嵌入 z 0 z_{0} z0。然后将扩散过程应用于 z 0 z_{0} z0,生成带噪声的潜在嵌入 z t z_{t} zt
    • 此外,利用 OCR 引擎 (PP-OCR [ 4 ] ^{[4]} [4]) 从图像中提取文本,并采用字形渲染生成一个白板图像。该图像专门表示识别出的字符作为黑色区域,形成字形图像 g g g
    • 因此,文本嵌入(基于文本提示词 c c c)和带噪声的潜在嵌入都被输入到 U-Net (锁定副本) 和 Glyph ControlNet (可训练副本)。
    • 这使得能够估计噪声项 ε ( z t , t ) ε(z_{t}, t) ε(zt,t),其中关键步是将字形图像传递给 Glyph ControlNet,以提取渲染良好文本所需的关键字形信息。
  • ( c) 在推理过程中,该方法支持多样化的用户指令,用于定制字形图像 g g g 的渲染。
    • 随后,从高斯噪声中采样一个噪声潜在嵌入 z T z_{T} zT,并采用 DDIM 模式执行去噪过程,估计去噪后的潜在嵌入 z 0 z_{0} z0
    • 最后, z 0 z_{0} z0 被送到 VAE 解码器,生成最终的输出图像 y y y

部分实验结果:
实验结果图
注意看该方法(Ours 那列)能够很好地区分字母的大小写。
在这里插入图片描述

  • 代码仓库:https://github.com/AIGText/GlyphControl-release
    • 包含两个测试的 benchmark
    • 包含在不同数据上训练或 finetune 的模型,一共四种 checkpoint
    • 包含推理和训练代码以及训练数据集,但训练推荐带有32GB显存的 GPUs (至少大于 16GB)
  • 个人总结:模型上的创新点主要是对 ControlNet 的 control 信息进行了针对任务的适配,如 Glyph Instructions 部分的设计。另外数据集的构建和 benchmark 的设计也非常 solid。

UDiffText

  • 论文题目:UDiffText: A Unified Framework for High-quality Text Synthesis in Arbitrary Images via Character-aware Diffusion Models
    在这里插入图片描述
    该方法可实现(a)文字编辑,(b)特定位置文字生成,(c)文字矫正。

  • 背景:近年来,基于扩散模型的文生图(T2I)生成方法引起了广泛关注。尽管这些图像合成方法产生了视觉上吸引人的结果,但在生成图像中呈现文本时,它们经常会出现拼写错误。这些错误表现为缺失、错误或多余的字符,严重影响了基于扩散模型的文本图像生成性能。

  • 方法概述:为了解决上述问题,本文利用了一个预训练的 Stable Diffusion。

    • 作者设计和训练一个轻量级的字符级文本编码器,该编码器取代了原始的 CLIP 编码器,并提供更健壮的文本嵌入作为条件引导。
    • 然后,用一个大规模数据集对扩散模型进行了微调,并结合字符级语义分割图的监督进行局部注意力控制。
    • 最后,通过采用推理阶段的细化过程,作者在任意的给定图像中合成文本时实现了显著高的序列准确性。

在这里插入图片描述
整体训练流程:

  • 该模型是基于 Stable Diffusion(v2.0) inpainting 版本构建的。
  • 利用字符级( character-level, CL)文本编码器从待渲染的文本中获取鲁棒的嵌入。
  • 使用去噪评分匹配(denoising score matching, DSM)以及基于字符级语义分割图计算的局部注意力损失和辅助场景文本识别损失来训练模型。
  • 需要注意,在训练过程中仅更新跨模态注意力(cross attention,CA)块的参数。

更多对比结果
在这里插入图片描述

  • 代码仓库:包含数据集、训练、测试代码、训好的 ckpt 和简单的 demo。
  • 个人总结:因为整个方法是建立在 Stable Diffusion(v2.0) inpainting 版本上,所以主要功能是对带有错误文字的图片进行矫正(编辑),而不能像前一篇 GlyphControl 直接在生成时就给出准确文字的图片。

TextDiffuser / TextDiffuser-2

  • 论文题目:TextDiffuser: Diffusion Models as Text Painters (发表于 NeurIPS 2023)
  • 论文题目:TextDiffuser-2: Unleashing the Power of Language Models for Text Rendering

在这里插入图片描述
TextDiffuser 可以生成准确的文字,并根据模版或特定区域进行文字的 inpainting。
在这里插入图片描述
TextDiffuser-2 则可以生成更加合理的布局,并使得文字在图像中更加和谐/合理。

两个工作是同一团队的延续性工作,TextDiffuser-2 延续了 TextDiffuser 的两阶段方法(先得到文字的 layout/布局,再根据 layout 信息生成文字),但引入了 LLM 辅助 layout 的生成。
在这里插入图片描述

  • TextDiffuser 包含两个阶段:
    • 在布局生成阶段,基于 Transformer 的编码器-解码器模型生成字符级分割掩码,用于指导图像中文字的布局。
    • 在图像生成阶段,扩散模型根据带噪声的特征图、语义分割图、特征掩码和掩码后的特征(从左到右)以及提示词生成图像。
    • 特征掩码可以覆盖整个或部分图像,对应整图和局部图像生成。扩散模型逐步学习通过去噪和字符感知损失去除特征的噪声。
    • 需注意,扩散模型在潜在空间中操作,但上图中用了图像像素是为便于理解。

在这里插入图片描述
TextDiffuser-2 的整体架构:

  • 语言模型 M 1 M_1 M1和扩散模型分两个阶段训练。
  • 语言模型 M 1 M_1 M1能够将用户提示转换为语言格式的布局,并允许用户可选地指定关键字。
  • 此外,提示和语言格式的布局在扩散模型内部的可训练语言模型 M 2 M_2 M2中进行编码,用于生成图像。
  • 在第一阶段, M 1 M_1 M1通过交叉熵损失进行训练,而在第二阶段, M 2 M_2 M2和U-Net则使用去噪L2损失进行训练。

更多 TextDiffuser-2 的结果可以看出可控性和文字细节都很不错。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 代码仓库:https://github.com/microsoft/unilm/tree/master/textdiffuser 和 https://github.com/microsoft/unilm/tree/master/textdiffuser-2(包含数据集、训练和推理代码,看起来非常完善。)
  • 一作的视频讲解(非常推荐!建议在微信中打开):https://www.techbeat.net/talk-info?id=839
  • 个人总结:数据集的构建非常非常 solid。TextDiffuser-2 相对于 TextDiffuser 的优化没有那么惊艳、比较细节,可能涉及审美会更偏主观感受。

Brush Your Text(Diff-Text)

  • 论文题目:Brush Your Text: Synthesize Any Scene Text on Images via Diffusion Model(AAAI 2024)

【论文头图】
该方法主要针对场景图(如街景、路牌等),并支持多个语种的文字
在这里插入图片描述

  • 背景:基于扩散的图像生成方法因其出色的文生图能力而备受赞誉,但在准确生成多语言场景文本图像方面仍面临挑战。为了解决这个问题,作者提出了Diff-Text,这是一个针对任何语言无需训练的场景文本生成框架。
  • 方法概述:
    • 该模型在给定任何语言的文本和场景的文本描述时输出一张逼真的照片。它利用渲染的草图图像作为先验,从而激发了预训练的 Stable Diffusion 的潜在多语言生成能力。
    • 根据观察到的交叉注意力图对生成图像中对象位置的影响,作者将一个局部化的注意力约束引入到跨注意力层中,以解决场景文本的不合理定位问题。
    • 此外,引入对比图像级提示词,进一步调整文本区域的位置,实现更准确的场景文本生成。
    • 实验证明,该方法在文本识别准确性和前景背景融合自然性方面均优于现有方法。

在这里插入图片描述
整体流程:

  • 该模型利用任何语言的输入文本( I t e x t I_{text} Itext)作为前景元素。然后,文本被渲染成草图图像,并检测其边缘以生成边缘图像,该图像作为控制分支的输入。
  • 同时,该接收输入提示( I p r o m p t I_{prompt} Iprompt)作为背景场景的描述。经过 T 次去噪迭代后,模型生成最终的输出图像( O i m a g e O_{image} Oimage)。
  • 在 U-Net 块的跨注意力层中采用局部化注意力约束和对比度图像级提示,以增强文本区域定位,实现精确的场景文本生成。

更多实验结果
在这里插入图片描述

  • 代码仓库:https://github.com/ecnuljzhang/brush-your-text
    • 因为是Trianing-free,所以只包含推理代码。
    • 预训练模型用的是 SD1.5 和 Controlnet-canny。
    • 另外, ICDAR2013 或 ICDAR2015 数据集可能需要自己找找。)
  • 个人总结:亮点在(1)多语言文字支持以及(2)Trianing-free。论文主要针对的是场景中的文字,所以文字的美观性、艺术性可能相对欠缺,但最终效果图其实也主要是看预训练的 SD 模型的能力和提示词的构建。

AnyText

  • 论文题目:AnyText: Multilingual Visual Text Generation And Editing(发表于ICLR 2024-Spotlight)
    在这里插入图片描述
  • 背景:尽管当前的图像生成已非常先进,但在生成图像中的文本区域时,仍然可能会暴露问题,因为合成的文本通常包含模糊、无法阅读或错误的字符,使得视觉文本生成成为该领域中最具挑战性的问题之一。

在这里插入图片描述

  • 方法概述:为了解决该问题,作者提出了 AnyText,一个基于扩散的多语言视觉文本生成和编辑模型,专注于在图像中渲染准确和连贯的文本,其包含两个主要元素:一个辅助潜在模块(Auxiliary latent module)和一个文本嵌入模块(Text embeding module)。如下图所示。
    在这里插入图片描述

  • 辅助潜在模块 (蓝色虚线框)使用文本字形(Glyph)、位置(Position)和遮罩图像(Masked image)等输入生成文本生成或编辑的潜在特征。

  • 文本嵌入模块(绿色虚线框)利用 OCR 模型(Encoder)将笔画数据(Glyph lines)编码为嵌入,与经过分词器(Tokenizer)处理的提示词(Prompt)嵌入相结合,生成与背景无缝融合的文本。

  • 作者采用了文本控制扩散损失( L t d L_{td} Ltd)和文本感知损失(棕色虚线框)进行训练,进一步提高了书写准确性,并可以用多种语言编写字符。

  • 值得一提的是,AnyText 可以插入到社区中现有的扩散模型中。

  • 此外,作者贡献了首个大规模多语言文本图像数据集 AnyWord-3M,其中包含300万个图像-文本对,具有多种语言的OCR注释。基于AnyWord-3M数据集,作者提出了用于评估视觉文本生成准确性和质量的 AnyText-benchmark。

更多实验结果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 代码仓库:https://github.com/tyxsspa/AnyText
    • 目前放出了推理的代码和模型,demo 以及 benchmark,暂时还没开源训练代码。
  • 个人总结:看起来效果很不错,而且代码也非常完善。

[1] https://github.com/IShengFang/TypographyResearchCollection
[2] https://github.com/yeungchenwa/Recommendations-Diffusion-Text-Image
[3] https://github.com/google-research/byt5
[4] https://github.com/PaddlePaddle/PaddleOCR

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/790989
推荐阅读
相关标签
  

闽ICP备14008679号