[论文速览] Handwritten Text Generation from Visual Archetypes

Pre

title: Handwritten Text Generation from Visual Archetypes
accepted: CVPR 2023
paper: https://arxiv.org/abs/2303.15269
code: https://github.com/aimagelab/VATr

关键词: few-shot, styled handwritten text generation (HTG), Transformer, cross-attentions
阅读理由: 没有更好的,随便看看

Idea

有点风格转换的感觉,输入文本(英文句子),然后利用字体渲染出图片作为内容编码,另一方面结合风格图片编出的特征,用Transformer解码出目标风格的文本

Motivation&Solution

  1. 生成模型能够模仿风格,但无视了罕见词的泛化 —— 为内容和风格设计了更加鲁棒的表示
  2. 字符one-shot编码不利于泛化

Background

Styled handwritten text generation (HTG) 是一个新兴研究领域,致力于合成模仿特定书写者风格的手写文本图片

实际应用从高质量 personalized Handwritten Text Recognition (HTR) 训练数据合成到为残疾人自动生成手写笔记(后天残疾想写出原本的字??)。

模仿书写风格不仅要纹理、笔画粗细,倾斜,扭曲,圆润与否,还得考虑字符形状等。HTG的方法按处理对象可分为 1.底层笔画组成的轨迹 2.图片。前一种是在线HTG,后一种则是离线HTG模型。本文为后一种,因为不需要 pen-recording 训练数据

图1 不同于之前的SOTA(HWT),这里用视觉原型,借助原型间的相似度,可以生成常见和不常见(红色)的字符。

之前的一些方法将文本内容的编码初始化为 one-hot 向量,每个都表示固定字符集里的不同字符,这样所有字符都是独立的,无法共享存在的一些几何或视觉相似的信息,对于长尾分布的字符来说会存在质量gap。

Method(Model)

Overview

图2 VATr总览。少量参考图片先扔进预训练过的CNN,输出再给Transformer,得到鲁棒的风格向量。要生成的文本先渲染为 GNU Unifont 二元图片(16x16),表示这些字符的视觉原型,它们充当Transformer解码器的query,与风格向量进行交叉注意力运算。然后内容风格表达被喂入卷积解码器,然后输出风格化的手写文本图片。图中左边的$\mathcal{E}$是风格编码器,右边的$\mathcal{D}$是内容引导编码器。

从标准 GNU 统一字形编写的符号图像中获得密集矢量序列,将其作为一种文本的新表示,可看作其视觉原型(visual archetypes)。该策略适合生成训练时低频的字符,它们可能与高频词共享有一些视觉细节。风格方面通过在大型合成数据集上进行特定于训练来获取更鲁棒的未知风格表达(unseen writers’ calligraphy)

Style Encoder

卷积编码器backbone用的ResNet18,(维度操作、架构等实现细节)

预训练用一些字体渲染一些英文单词,然后加上纸一样质感的背景,有大于100M个样本,加点随机变换。

Content-Guided Decoder

用 GNU Unifont 渲染,因为该字体含有所有unicode字符,得到16x16的字符图片,然后拉平为向量,再投影到d维做query,类似ViT

图3 第一行是 unifont 字符,后面的都是其他风格的手写字符,字符间的几何相似性由视觉原型所捕捉,然后用于生成。

图3所示的相似性可以用于生成长尾字符,作者说数据量还得大

Transformer解码器输出加点高斯噪声,增强生成图片的多样性

Model Training

对抗损失:

\[L_{a d v}=\mathbb{E}\left[\max(1-\mathcal{D}_{\eta}(\mathbf{X}_{\mathbf{w}}),0)\right]+ \mathbb{E}\left[\max(1+\mathcal{D}_{\eta}(\mathcal G_{\theta}({\bf X}_{\mathrm{w}},{\bf C})),0)\right]. \]

用HTR模型\(\mathcal{R}_{\phi}\)来识别生成图片里的文本,用gt数据训练,损失如下:

\[L_{H T R}=\mathbb{E}_{\mathbf{x}}\left[-\sum\log(p(t_{\mathbf{x}}|\mathcal{R}_{\phi}(\mathbf{x})))\right], \]

x可以是真实的或生成图片,\(t_x\)是相应的gt文本

用卷积分类器\(\mathcal{C}_{\psi}\)分类图片所属的writer w:

\[{\cal L}_{c l a s s}= \mathbb{E}_{x}\left[-\sum\log(p(\mathrm{w}|\mathcal{C}_{\psi}(\mathrm{x})))\right]. \]

循环一致损失:

\[{\cal L}_{c y c l e}= {\mathrm{E}}\left[\left|\left| {\cal E}({\bf X}_{\mathrm{w}})-\mathcal{E}({\bf Y}_{\mathrm{w}}^{\mathrm{C}})\right|\right|_{1}\right]. \]

相当于要求生成图片跟风格图片抽取出来的风格向量一样

完整损失:

\[{\cal L}={\cal L}_{a d v}+{\cal L}_{H T R}+{\cal L}_{c l a s s}+{\cal L}_{c y c l e}. \]

Experiment

Settings

2080Ti
预训练CNN: Adam, lr=2e-5, 指数衰减, early stopping patience=30, 数据太多,收敛前一直能得到没见过的样本,1000iter算一个epoch
完整HTG: Adam, lr=2e-4
训练7k epoch

Dataset

IAM数据集

图4 IAM数据集中训练集字符分布和类别(对数尺度)。以1000为阈值划定长尾数据(红线)

Ablation Analysis

表1 VATr消融研究(预训练策略,内容输入)

FewShot Styled HTG

图2 IAM测试集上的生成质量(忽略风格)

表3 考虑 seen and unseen calligraphic style and in-vocabulary and out-of-vocabulary textual content 四个场景的生成质量评估(指标不明

图5 定性评估

图6 使用背景有伪影的风格图片生成的样例。多亏了大规模预训练策略,VATr更专注于风格的形状属性而不是图片背景,但这点会导致FID和GS偏高,

LongTail Characters Generation

表4 考虑包含长尾字符以及仅数字的单词生成,CER(Character Error Rate),由训练好的HTR模型识别生成文本得到

图7 数字图片生成比较(对应表4,证明visual archetypes比one-hot编码好

图8 生成一些不同风格 out-of-charset 的符号(希腊字母)

Conclusion

作者将模型泛化能力归因于大规模的预训练和视觉原型的应用,预训练也有助于抽取更有代表性的风格特征,无视背景和 ink texture

Critique

用字母对应的图片替代one-hot编码作为内容向量,真有点风格迁移/字体生成的感觉

Unknown

posted @ 2023-09-28 13:00  NoNoe  阅读(177)  评论(0编辑  收藏  举报