AnyText: 多语言视觉文本生成与编辑
论文介绍 Anytext: Multilingual Visual Text Generation and Editing
关注微信公众号: DeepGoAI
我的项目地址:https://github.com/tyxsspa/AnyText(曾经 3.3k+)
论文地址:https://arxiv.org/abs/2311.03054
本文介绍一款基于扩散模型的多语言视觉文本生成与编辑工具 AnyText。其旨在图像中渲染精确且连贯的文本。AnyText 通过一个蕴含辅助潜在模块和文本嵌入模块的扩散流程实现文本的生成或编辑,能够在图像中无缝整合文本,反对多种语言,是首个针对多语言视觉文本生成的工作。
上图展现了论文中的 文字生成和编辑的成果。能够说是十分真切且天然。不仅如此,对于文字编辑,能够实现高质量的篡改编辑,属实是十分惊艳。
这里展现了更多编辑的成果,在不规整的掩码下,仍然能够做到毫无违和感的编辑成果。
办法概述
AnyText 的框架,包含以下模块:
- 辅助潜在模块 (Auxiliary Latent Module):该模块应用文本符号、地位和遮罩图像等输出来生成文本生成或编辑的潜在特色。
- 文本嵌入模块 (Text Embedding Module):采纳 OCR 模型编码笔画数据为嵌入,这些嵌入与来自分词器的图像题目嵌入混合,生成与背景无缝集成的文本。
- 文本管制扩散管道 (Text-Control Diffusion Pipeline):负责解决和生成文本,确保生成的文本与图像背景天然交融。
- 文本感知损失 (Text Perceptual Loss):在训练过程中应用,进一步提高生成品质。
工作流程大抵如下:
- 输出解决 :首先通过辅助潜在模块解决输出数据(文本符号、地位和遮罩图像等),生成用于后续文本生成或编辑的潜在特色。
- 文本嵌入 :应用文本嵌入模块解决 OCR 模型编码的笔画数据和图像题目嵌入,为扩散管道提供所需的文本信息。
- 文本生成与编辑 :联合潜在特色和文本嵌入,通过文本管制扩散管道生成或编辑图像中的文本,确保文本与图像背景的天然交融。
- 损失计算 :在训练过程中,应用文本感知损失进一步优化模型性能,进步文本生成的准确性和天然度。论文中次要训练辅助潜在模块,文本嵌入模块以及文本管制扩散管道中的局部参数,如 ControlNet。训练指标定义为:
$\mathcal{L} = \mathcal{L}_{td} + \lambda \ast \mathcal{L}_{tp}.
$ 其中 $L_{td}$ 为文本管制扩散损失,$L_{tp}$ 为文本感知损失,$\lambda$ 用于调整两个损失函数之间的权重比例。
文本管制扩散管道
- 潜在示意生成 :首先,应用变分自编码器(VAE)解决输出图像 $x_0 \in \mathbb{R}^{H \times W \times 3}$,生成潜在示意 $z_0 \in \mathbb{R}^{h \times w \times c}$。这里,$h \times w$ 代表通过因子 $f$ 下采样的特色分辨率,$c$ 示意潜在特色维度。
- 噪声增加 :而后,潜在扩散算法逐渐向 $z_0$ 增加噪声,生成噪声潜在图像 $z_t$,其中 $t$ 示意工夫步。
- 条件集成 :给定一组条件,包含工夫步 $t$,辅助特色 $z_a \in \mathbb{R}^{h \times w \times c}$ 由辅助潜在模块生成,以及文本嵌入 $c_{te}$ 由文本嵌入模块生成,文本管制扩散算法利用网络 $\epsilon_\theta$ 来预测增加到噪声潜在图像 $z_t$ 的噪声,指标函数为:
$$
\mathcal{L}_{td} = \mathbb{E}_{z_0, z_a, c_t, \epsilon, \sim \mathcal{N}(0,1)} \left[\left\| \epsilon – \epsilon_{\theta}(z_t, z_a, c_{te}, t) \right\|^2 \right]
$$
辅助潜在模块
AnyText 应用三种辅助条件来产生潜在特色图 $z_a$:字形 $l_g$,地位 $l_p$ 和遮罩图像 $l_m$。字形 $l_g$ 通过在基于其地位的图像上渲染文本生成,地位 $l_p$ 通过在图像上标记文本地位生成,在训练阶段,文本地位从 OCR 检测或手动正文取得;在推理阶段,$l_p$ 从用户输出取得。遮罩图像 $l_m$ 批示在扩散过程中应保留的图像区域。通过交融层 $f$ 合并 $l_g$、$l_p$ 和 $l_m$,生成特色图 $z_a$,示意为 $z_{a} = f(G(l_{g}) + P(l_{p}) + \epsilon(l_{m}))$。
其中,$f$ 示意卷积交融层,$G$ 代表解决字形的模块,$P$ 代表解决地位的模块,$\epsilon$ 是 VAE 编码器,用于解决遮掩图像 $l_m$。生成的特色映射 $z_a$ 集成了文本的字形、地位和上下文背景信息。
文本嵌入模块
在 AnyText 中,作者提出了一种新鲜的办法来解决多语言文本生成的问题。具体来说,作者将字形线条渲染成图像,编码字形信息,并替换来自题目的嵌入(caption tokens)。这些文本嵌入不是一一字符学习的,而是利用了一个预训练的视觉模型,特地是 PP-OCRv3 的文本辨认模型。而后将替换后的嵌入输出到基于 Transformer 的文本编码器作为标记,以取得交融的两头示意,这将被映射到 UNet 的中间层,应用穿插注意力机制。因为利用图像渲染文本,而不齐全依赖于特定语言的文本编码器,作者的办法显著加强了多语言文本的生成。
文本嵌入模块的示意 $c_{te}$ 定义为 $c_{te} = {\tau}_{\theta}(\phi(y’), \xi(\gamma_{\theta}(e_{g})))$。
其中 $y’$ 是解决过的输出标记 $y$(caption)。而后在标记化和嵌入查找后取得题目嵌入(caption embeddings)。而后,每行文本被渲染到一个图像上,失去 $e_g$。请留神,$e_g$ 只是通过在图像核心渲染单个文本行生成的,而 $l_g$ 是通过在单个图像上的它们的地位渲染所有文本行产生的。而后图像 $e_g$ 被输出到一个 OCR 辨认模型 $\gamma$ 中以提取特色,而后利用一个线性变换 $\xi$ 作为文本嵌入,以确保其大小与题目嵌入匹配。最初,所有标记嵌入都应用 CLIP 文本编码器 $\tau_\theta$ 进行编码。
文本感知损失
作者提出文本感知损失来进一步提高文本生成的准确度。假如 $\epsilon_t$ 代表去噪网络 $\theta$ 预测的噪声,作者能够联合工夫步 $t$ 和噪声潜在图像 $z_t$ 来预测 $z_0$。这能够进一步与 VAE 解码器一起应用,以取得原始输出图像的近似重建,记为 ${x}’_0$。
通过从潜在空间到图像空间的转换,作者能够进一步监督文本生成到像素级别。借助地位条件 $l_p$,作者能够精确地定位生成文本的区域,并与原始图像 $x_0$ 中的相应区域进行比拟,专一于文本本身写作的正确性,排除背景、字符地位、色彩或字体款式等因素的烦扰。因而,作者采纳 PP-OCRv3 模型,作为图像编码器。通过对 $x_0$ 和 ${x}’_0$ 在地位 $p$ 进行裁剪、仿射变换、填充和标准化等操作,作者失去图像 $p_g$ 和 ${p}’_g$ 作为 OCR 模型的输出。通过利用失去的在全连贯层之前特色图 $m_p$ 和 $\hat{m}’_p \in \mathbb{R}^{h \times w \times c}$。这两者别离示意原始和预测图像地位 $p$ 中的文本信息。文本感知损失示意为:
$$
\mathcal{L}_{tp} = \sum_{p} \frac{\varphi(t)}{hw} \sum_{h,w} \left\| \tilde{m}_{p} – \hat{m}’_{p} \right\|^2_2
$$
通过施加均方误差(MSE)惩办,作者尝试最小化预测图像和原始图像在所有文本区域的差别。因为工夫步 $t$ 与文本品质相干,作者须要设计一个权重调整函数 $\phi(t)$。曾经发现设置 $\phi(t) = \alpha_t$ 是一个好的抉择,其中 $\alpha_t$ 是扩散过程中的系数。
总结
AnyText 是一种先进的视觉文本生成与编辑工具,旨在改善和优化图像中的文本渲染。通过联合辅助潜在模块和文本嵌入模块,AnyText 可能在多种语言环境下生成清晰、精确的文本,并且能够轻松地集成到现有的扩散模型中,以进步文本的渲染和编辑品质。此外,AnyText 反对多行文本生成、适应变形区域的文本书写、多语言文本生成和编辑,以及插件式与现有模型的集成,展示了其在视觉文本处理畛域的弱小性能和灵活性。研发团队通过引入文本管制扩散损失和文本感知损失进行训练,显著进步了写作的准确性,使 AnyText 成为解决图像中文本问题的无力工具。此外,AnyText 我的项目还奉献了首个大规模多语言文本图像数据集 AnyWord-3M (目前还没有开源),为学术研究和理论利用提供了丰盛资源。
其余更多细节请参阅论文原文
关注微信公众号: DeepGoAI
本文由 mdnice 多平台公布