论文笔记 - You Can even Annotate Text with Voice:Transcription-only-Supervised Text Spotting
前言
这篇论文是第一篇只使用文本标注进行训练的text spotting算法,该方法使用transformer来学习文本query和图片特征的交互,来隐式学习文本位置的相关信息,然后在文本识别的过程中,通过attention map的形式显式地表现出来,为了提高定位精度,本文还提出了一种由粗到精的注意力定位机制。为了帮助模型快速收敛,本文提出了一种循环分阶段式的学习策略。此外,本文提出了一种通过语音进行文本标注的方式,来降低标注文本所需要的时间。
论文:You Can even Annotate Text with Voice:Transcription-only-Supervised Text Spotting
背景
传统的text spotting方法对文本的位置信息依赖较为严重,需要将其作为监督信息训练检测网络,同时需要进行特征crop来训练识别网络,但位置信息标注耗费时间较长,严重制约了文本数据的数量。受到image caption领域的启发,本文将text spotting算法作为image caption问题进行考虑,提出了一种仅依赖文本标注信息进行训练的弱监督训练算法TOSS,本文的贡献如下:
- 首次提出不依赖文本位置作为监督信息的text spotting算法,该方法仅依靠文本queries和图片特征的交互即可完成文本识别
- 提出了一种循环分阶段训练策略帮助模型快速收敛
- 提出了一种由粗到精的定位方式,从而可以在文本位置标注信息确实的情况下尽量精确的定位文本
- 提出了一种通过语音标注数据完成text spot的解决方案
框架
基于query的cross-attention机制
使用的是标准的transformer结构,由4个8头的transformer block构成,$Q$为随机初始化的$N_q$个text quries,维度为$d$,$K$和$V$都为图片embedding,为图片经过backbone提取的特征进行flatten后得到,维度为$L \times d$,将$Q,K,V$输入Transformer后可以得到每个query对应的local feature,这些feature可以输入分类分支和文本识别分支进行分类和识别
由粗到精的Cross Attention定位机制
该机制由两个阶段组成,第一个阶段即上述的内容,使用$N_q$个text quries进行文本粗定位,第二个阶段使用第一阶段的输出,使用一个共享的query,进一步提高文本定位的精度。在第一个阶段,可以使用以下公式获得attention map:
$$
A A M=\operatorname{softmax}\left(\frac{W_q(Q+h) W_k(f)^T}{\sqrt{d}}\right)
$$
其中,$Q$即为queries,$h$为上个部分提到的local feature,$f$为图像的feature。得到$AAM$后,即可将在进入第二阶段前,将与文本无关的token(图片feature)进行过滤,同时得到文本的位置信息。
在第二阶段,会通过一个共享的query来学习到更精确的attention map,即
$$
\text { Refined } M a p=\left(M_1, M_2 \ldots, M_{N_q}\right) \text {, }
$$
$$
M_i=\operatorname{softmax}\left(\frac{W_q\left(Q_r+h_i\right) W_k\left(\hat{f_i}\right)^T}{\sqrt{d}}\right)
$$
其中,$\hat{f_i}$为第$i$个query产生的过滤后的token
基于文本的匈牙利匹配loss
TOSS共有文本识别和文本分类2个分支,其中文本识别分支loss基于匈牙利匹配算法的结果进行计算,分类分支的loss基于文本的匹配结果进行计算
文本识别分支的输入为由decoder产生的$x \in \mathbb{R}^{N_q \times d}$,输出为$N_{q}$个文本结果,根据匈牙利算法可计算出预测结果和GT之间的一对一匹配关系
$$
\hat{\sigma}=\underset{\xi \in N_{g t}}{\operatorname{argmin}} \sum_{i=1}^{N_q} H\left(t_i, \hat{t}{\sigma(i)}\right)
$$
其中,$H$为匹配函数,$\hat t$为gt,得到匹配关系$\hat{\sigma}$后,可以计算文本识别loss
$$
L{text} \left( t, \hat{t} \right) = \sum_{i=1}^{N} L \left( t_{i}, \hat{t}{\sigma \left( i \right)} \right)
$$
对于每个预测文本,如果有gt与其匹配,则分配一个’text’标签,否则分配一个’non-text’标签,然后计算如下loss
$$
\mathrm{L}{c l s}\left(p_i, \hat{t}_{\sigma(i)}\right)= \begin{cases}-\alpha \log p_i & \text { if } \hat{t}_{\sigma(i)} \neq \emptyset \ -(1-\alpha) \log \left(1-p_i\right) & \text { otherwise }\end{cases}
$$
循环分阶段学习策略
该方法将文本数据分为3类,如下所示
- easy:合成数据集中,在简单背景上包含有清晰的文本,训练时在SynthText-150k上选取了10k数据
- semi-hard:合成数据集中,文本背景较为复杂的图像,但由于是合成数据集,背景数量有限,训练时使用SynthText-150k上的其他140k数据
- hard:真实数据,训练时使用所有的公开街景数据集
此外,由于考虑到模型训练过程中可能会遗忘以往学习到的信息,因此采用循环分阶段学习策略,如下图所示
使用语音进行文本标注
使用ASR模型将语音转化为文本,通过长时间的发音间隔来区分不同字母。相比而言,由于标注者口音不同,以单词为单位进行标注,语音识别效果较差,因此以字符为单位进行识别
对比实验
refine阶段个数的影响
对比了使用0-2个refine阶段,2个阶段性能提升不大但更耗费资源,因此使用1个refine阶段,更具性价比
训练策略影响
对比了pretrain-finetune、curriculum learning 、 circular curriculum learning三种策略,发现circular curriculum learning效果最好,收敛最快
街景数据集实验
分别在不同类型数据集上进行对比,对比的重点方法为SPTS,应为该方法仅使用点作为文本位置标注,与本文类似。在计算IoU时,由于本文仅获得Attention Map,定位不够精确,因此使用和MANGO类似的阈值0.1
水平文本数据集:主要在ICDAR 2013上进行对比,与有监督算法、SPTS方法相近
多方向文本数据集:主要在ICDAR 2015上进行对比,与有监督算法差距较大,主要是因为文本较为模糊且方向多变,比SPTS强一些
任意形状文本数据集:主要在Total Text和SCUT-CTW-1500上进行对比,与有监督算法差距较大,主要是因为文本较为模糊且方向多变,其缺乏文本位置信息监督,比SPTS强一些
在所有的数据集上,与SPTS 相抵,虽然没有位置信息的监督,但性能相差不大,作者认为有以下几点原因:
- 通过cross attention机制,文本querie可以通过文本和图片的关系提取到局部特征
- 通过匈牙利匹配算法可以隐式地监督文本位置信息,并且循环分阶段训练策略可以让模型快速收敛
- 由粗到精的注意力机制可以提升文本定位的准确性
语音文本标注实验
由于缺乏语音标注工具,作者首先通过TTS服务将Total Text的文本标注转为语音,然后通过ASR模型识别为文本,训练text spotting,最终效果较直接使用原标注略差,主要是因为语音识别存在误差