论文笔记 - 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的解决方案

框架

Pipeline

基于query的cross-attention机制

使用的是标准的transformer结构,由4个8头的transformer block构成,QQ为随机初始化的NqN_q个text quries,维度为ddKKVV都为图片embedding,为图片经过backbone提取的特征进行flatten后得到,维度为L×dL \times d,将Q,K,VQ,K,V输入Transformer后可以得到每个query对应的local feature,这些feature可以输入分类分支和文本识别分支进行分类和识别

由粗到精的Cross Attention定位机制

该机制由两个阶段组成,第一个阶段即上述的内容,使用NqN_q个text quries进行文本粗定位,第二个阶段使用第一阶段的输出,使用一个共享的query,进一步提高文本定位的精度。在第一个阶段,可以使用以下公式获得attention map:

AAM=softmax(Wq(Q+h)Wk(f)Td)A A M=\operatorname{softmax}\left(\frac{W_q(Q+h) W_k(f)^T}{\sqrt{d}}\right)

其中,QQ即为queries,hh为上个部分提到的local feature,ff为图像的feature。得到AAMAAM后,即可将在进入第二阶段前,将与文本无关的token(图片feature)进行过滤,同时得到文本的位置信息。

在第二阶段,会通过一个共享的query来学习到更精确的attention map,即

 Refined Map=(M1,M2,MNq)\text { Refined } M a p=\left(M_1, M_2 \ldots, M_{N_q}\right) \text {, }

Mi=softmax(Wq(Qr+hi)Wk(fi^)Td)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)

其中,fi^\hat{f_i}为第ii个query产生的过滤后的token

基于文本的匈牙利匹配loss

TOSS共有文本识别和文本分类2个分支,其中文本识别分支loss基于匈牙利匹配算法的结果进行计算,分类分支的loss基于文本的匹配结果进行计算

文本识别分支的输入为由decoder产生的xRNq×dx \in \mathbb{R}^{N_q \times d},输出为NqN_{q}个文本结果,根据匈牙利算法可计算出预测结果和GT之间的一对一匹配关系

σ^=argminξNgti=1NqH(ti,t^σ(i))\hat{\sigma}=\underset{\xi \in N_{g t}}{\operatorname{argmin}} \sum_{i=1}^{N_q} H\left(t_i, \hat{t}_{\sigma(i)}\right)

其中,HH为匹配函数,t^\hat t为gt,得到匹配关系σ^\hat{\sigma}后,可以计算文本识别loss

Ltext(t,t^)=i=1NL(ti,t^σ(i))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

Lcls(pi,t^σ(i))={αlogpi if t^σ(i)(1α)log(1pi) otherwise \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阶段,更具性价比

对比实验-refine阶段个数

训练策略影响

对比了pretrain-finetune、curriculum learning 、 circular curriculum learning三种策略,发现circular curriculum learning效果最好,收敛最快

对比实验-训练策略

街景数据集实验

分别在不同类型数据集上进行对比,对比的重点方法为SPTS,应为该方法仅使用点作为文本位置标注,与本文类似。在计算IoU时,由于本文仅获得Attention Map,定位不够精确,因此使用和MANGO类似的阈值0.1

水平文本数据集:主要在ICDAR 2013上进行对比,与有监督算法、SPTS方法相近

街景数据-ICDAR 2013

多方向文本数据集:主要在ICDAR 2015上进行对比,与有监督算法差距较大,主要是因为文本较为模糊且方向多变,比SPTS强一些

街景数据-ICDAR 2015

任意形状文本数据集:主要在Total Text和SCUT-CTW-1500上进行对比,与有监督算法差距较大,主要是因为文本较为模糊且方向多变,其缺乏文本位置信息监督,比SPTS强一些

街景数据-TotalText

街景数据-CTW1500

在所有的数据集上,与SPTS 相抵,虽然没有位置信息的监督,但性能相差不大,作者认为有以下几点原因:

  • 通过cross attention机制,文本querie可以通过文本和图片的关系提取到局部特征
  • 通过匈牙利匹配算法可以隐式地监督文本位置信息,并且循环分阶段训练策略可以让模型快速收敛
  • 由粗到精的注意力机制可以提升文本定位的准确性

语音文本标注实验

由于缺乏语音标注工具,作者首先通过TTS服务将Total Text的文本标注转为语音,然后通过ASR模型识别为文本,训练text spotting,最终效果较直接使用原标注略差,主要是因为语音识别存在误差

语音文本标注