[论文速览] Handwriting Transformers
Pre
title: Handwriting Transformers
accepted: ICCV 2021
paper: https://arxiv.org/abs/2104.03964
code: https://github.com/ankanbhunia/Handwriting-Transformers
关键词: handwritten text generation, 英文文本手写生成
阅读理由: 看看手写生成怎么结合Transformer,如何根据每个字符查询风格
Idea
把Transformer接在CNN后,英文文本手写生成任务,每个字符分配可学习变量,句子逐个字母编码后输入编码器,通过交叉注意力结合风格做生成。
Motivation&Solution
- 风格内容在近来的GAN方法中都是联系松散,它们分别处理二者再拼接,这样无法在字符级别明确地编码风格内容耦(style-content entanglement) —— 紧凑设计
- (21年前?)现有的都是学一个全局风格,但局部的(character style, ligatures)也很重要
- (x) 字符级风格内容的耦合有助于模仿特定字符的写作风格以及泛化到词汇外的内容 —— 用编码器解码器注意力机制收集每个query字符的风格表征
- (x) 为了捕捉的风格,需要编码全局的(例如墨水宽度、倾斜度等)和局部的(例如字符风格、连字等)风格特征 —— 自注意力机制

图1 HWT跟其他方法的比较。HWT很好学到了红线划出的字母'n',而蓝色和品红色划出的单词跟(a)中某些单词有重叠的部分,HWT还能在绿线划出的'also'上维持连笔与每个字母的连接性。
Background
- 实现任意长度多样风格的无限制真实手写文本序列生成
- 第一个把Transformer用来做手写文本生成
提到了ScrabbleGAN、GANwriting等,好像跟本文一样都是生成手写英文文本的。
跟GANwriting一样,本文也研究少样本下的风格手写文本合成问题,但可以灵活地生成任意长度的风格化文本,同时精度更细,可以捕捉单词/字符级的风格内容耦合。也提到引入CNN,在其特征空间中发挥Transformer的表达能力,不然Transformer对数据需求太大而且平方复杂度...
Method(Model)
Overview

图2 总体架构。里面两块黄色的,左边编码器右边解码器,二者都结合了CNN跟Transformer
enc产生某一书写者的风格特征序列,dec利用自注意力和编解码器注意力,在给定查询单词字符串的前提下来产生字符特定的风格属性。输出再扔给卷积dec,生成最终的风格手写文本图片。
每个字符c都分配一个可学习的嵌入向量 \(q_c \in \mathbb{R}^{512}\) ,对于单词 deep 就得到 \(Q_{deep}\) ,成为查询嵌入(去查每个字符的风格),这样更精细,配合Transformer还能实现可变长度的单词生成,并且能更有效地产生OOV的单词。
Encoder T_E
ResNet18先抽取风格图片的特征(shape=(h,w,d)),然后将其展平(shape=(hw,d)),其中每个向量表示原图中的一块,所有风格图片的向量拼在一起(shape=(hwP,d))
Decoder T_D

图3 编解码器最后一层注意力图可视化。这里展示了4个字母对应的热力图,如左上角高亮的就都是字母't'
编码器输出充当key,value,解码器输入作为query,如图3所示,通过交叉注意力根据Q为每个字符获取风格,最终输出为F,然后为F增加随机噪声向量,以模拟手写的随自然差异。最后由CNN解码,tanh激活,得到输出图片。
Training and Loss Objectives
如图2,一共4个损失,对应公示2~5:
- 基于判别器 \(D_\psi\) 的判别损失 \(L_{adv}\) ,但只管真不真,不能有效维持内容或风格
- 基于识别网络 \(R_\phi\) ,CTC损失,确保生成结果内容准确且可读
- 风格分类网络 \(S_\eta\) 交叉熵损失,预测给定手写图片的风格
- 风格编码器 \(T_\mathcal{E}\) 循环一致损失(L1),让风格图片和生成图片的风格特征接近
实验发现平衡 \(R_\phi,\; S_\eta\) 的梯度对训练有益,将二者梯度标准化(normalize),让他们标准差跟对抗损失的梯度一样:
\(\alpha\) 是超参数,训练中固定为1
Experiment
Dataset
IAM handwriting dataset,含有9862个文本行,约62,857英文单词,500个不同的书写者。按书写者划分数据集,其中340个的图片用作训练,剩下160个的子集去测试。
Training Detail
所有实验中图片高度固定为64像素,保持原比例缩放。训练时风格图片的数量\(P=15\)。三层注意力,多头注意力头数为8,嵌入尺寸 \(d=512\) ,模型在 V100 训练 4k epoch,batchsize=8,Adam优化器,学习率 0.0002
Results

表1 指标为FID,四种实验设置:In-Vocabulary words and seen style (**IV-S**), In-Vocabulary words and unseen style (**IV-U**), Out-of-vocabulary content and seen style (**OOV-S**), Out-ofvocabulary content and unseen style (**OOV-U**).
表1中OOV-*的两种用IAM之外的400个不同单词。

图4 目标文本是"No two people can write precisely the same way just like no two people

表2 IAM上手写文本生成能力的比较,只考虑质量,忽略风格模仿能力。
Ablation study

表3 IAM OOV-U 设置上的消融 往baseline上增加 transformer encoder (Enc), transformer decoder (Dec) 和 cycle loss (CL)

表4 IAM上比较字符级和单词级条件(word-level conditioning)。单词级条件通过增加MLP来获得每个查询单词的字符串表达,然后作为Transformer解码器的输入。
经典用户调查环节,细分为 User preference study 和 User plausibility study 两个部分,前面是1真多假,看哪个假的学得最像,后一个真假混杂,看模型能否蒙混过关。
共100志愿者,前者有1000份结果,HWT得到了81%的支持。后者6000结果,有48.1%被正确分类,跟随机挑选一样。
这部分表全放附录了,就草草描述了一下。
Conclusion
略
Critique
用了不少高级?的单词: self-attentive, ligature, Resultantly, permissible, mimic
想法直接,效果相比较好像还行,但图片分辨率好低,很多样本都是一片糊。
Unknown
无
本文作者:心有所向,日复一日,必有精进
本文链接:https://www.cnblogs.com/Stareven233/p/17570948.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步