论文笔记 - 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级别的对比学习
- 定义了保证序列不变的图像增强
本文框架
seqCLR算法框架主要由5个部分组成
随机数据增强:通过数据增强产生一个图片对,并保证序列对齐
编码器:用于提取图片特征,输出维度为$F \times T_i$,$F$为特征维度,$T_i$ 为frame数量
映射头(可选):用于图片特征变换,一般使用MLP,本文使用BiLSTM,输出维度为$F^{‘} \times T_i$
Instance-mapping:将$T_i$frame映射为$T^{‘}_{i}$个instance,然后图片对中的每个图片对应的instance组成集合$Z_a$和$Z_b$,用于求Loss
Contrastive Loss:loss函数如下所示
数据增强
图片分类,目标检测使用的增强方式可能会使文本无法读取,如水平翻转,随机裁剪等,因此需要使用保证文本可读以及序列顺序的变换,如下图所示,a代表可以使用的变换,b代表可能破坏文字的变换,c代表破坏文字可读性的变换
instance-mapping方法
文本图片长度不定,而且是由多个种类的字母组成的序列结果,不是单一种类,因此,用于对比学习loss的instance应该由多个连续的frame组成,作者提出3种instance-mapping方法:
- All-to-instance:通过average pooling将所有的frame组成一个instance。会减少负样本数量且会造成sequence-level的不匹配
- Window-to-instance:通过adaptive average polling方式生成固定数量$T^{‘}$个instance。效果较好,misalignment可以由BiLSTM弥补
- Frame-to-instance:每个frame都是一个instance。
实验
解码器评测
用于评估视觉特征质量:使用编码器-解码器架构,通过自监督方法训练基础编码器,然后freeze,并在此基础上使用所有标注数据训练CTC解码器/Attention解码器,实验结果如下
Fine-tuning
编码器与之前实验相同,但使用5%或者10%的数据用于fine-tuning整个网络,为了获得更好的表现,可以在编码器-解码器架构上增加一些额外的层。实验中可以看到,使用Attention Decoder时,Window-to-instance表现最好,使用CTC Decoder时,Frame-to-instance表现最好(可能是二者都逐帧使用特征有关)