论文笔记 - Sequence-to-Sequence Contrastive Learning for Text Recognition

前言

这篇论文借鉴对比学习算法simCLR,并在其基础上针对文本识别的特点进行改良形成seqCLR算法,通过引入instance mapping,实现sub-word level级别的对比学习,来提供一个良好的预训练模型。同时,针对文本识别特点,提出更加合适的数据增强防范。在手写字符数据集和街景数据集上的实验结果表明,当使用全部标签finetune预训练模型时,seqCLR算法的性能要优于有监督识别算法

论文Sequence-to-Sequence Contrastive Learning for Text Recognition

背景

在自监督学习领域,对比学习方法在很多计算机视觉领域都取得了成功,但是在文本识别领域,并没有得到很好的应用。究其原因,在图像分类等任务中,图片整体为一个原子输入,而在文本识别任务中,文本图片是多个字母图片组成序列,标准的对比学习方法并不合适

seqCLR的核心思想是将对比学习的方法用于图片序列中的元素,同时保持图像序列的顺序信息,因此,作者引入了instance-mapping函数。论文的主要贡献包括:

  • 提出了用于visual seq-to-seq的对比学习方法
  • 将文本图像的feature map视为多个instance的序列,进行sub-word级别的对比学习
  • 定义了保证序列不变的图像增强

本文框架

Pipeline

seqCLR算法框架主要由5个部分组成

  • 随机数据增强:通过数据增强产生一个图片对,并保证序列对齐

  • 编码器:用于提取图片特征,输出维度为F×TiF \times T_iFF为特征维度,TiT_i 为frame数量

  • 映射头(可选):用于图片特征变换,一般使用MLP,本文使用BiLSTM,输出维度为F×TiF^{'} \times T_i

  • Instance-mapping:将TiT_iframe映射为TiT^{'}_{i}个instance,然后图片对中的每个图片对应的instance组成集合ZaZ_aZbZ_b,用于求Loss

  • Contrastive Loss:loss函数如下所示

    Contrastive Loss

    NCE Loss

数据增强

图片分类,目标检测使用的增强方式可能会使文本无法读取,如水平翻转,随机裁剪等,因此需要使用保证文本可读以及序列顺序的变换,如下图所示,a代表可以使用的变换,b代表可能破坏文字的变换,c代表破坏文字可读性的变换

Augmentation

instance-mapping方法

文本图片长度不定,而且是由多个种类的字母组成的序列结果,不是单一种类,因此,用于对比学习loss的instance应该由多个连续的frame组成,作者提出3种instance-mapping方法:

  • All-to-instance:通过average pooling将所有的frame组成一个instance。会减少负样本数量且会造成sequence-level的不匹配
  • Window-to-instance:通过adaptive average polling方式生成固定数量TT^{'}个instance。效果较好,misalignment可以由BiLSTM弥补
  • Frame-to-instance:每个frame都是一个instance。

instance-mapping

实验

解码器评测

用于评估视觉特征质量:使用编码器-解码器架构,通过自监督方法训练基础编码器,然后freeze,并在此基础上使用所有标注数据训练CTC解码器/Attention解码器,实验结果如下

解码器评测

Fine-tuning

编码器与之前实验相同,但使用5%或者10%的数据用于fine-tuning整个网络,为了获得更好的表现,可以在编码器-解码器架构上增加一些额外的层。实验中可以看到,使用Attention Decoder时,Window-to-instance表现最好,使用CTC Decoder时,Frame-to-instance表现最好(可能是二者都逐帧使用特征有关)

Fine-tune实验

消融实验

映射头能够改善特征质量

映射头作用

Sequence-level alignment的重要性,对比水平crop的影响

水平crop影响