陈 瑛,陈平平,林志坚
(福州大学 物理与信息工程学院,福建 福州 350108)
近年来,场景文本识别逐渐成为计算机视觉任务中的一个重要过程,在智能交通驾驶、图像搜索、产品识别等实际项目中得到了广泛的应用[1]。由于场景文本蕴含着丰富的语义信息,对理解现实场景发挥着至关重要的作用。随着场景文本检测技术的不断发展,在精准的文本定位上如何实现精准的文本识别被视为一个极具挑战性的研究问题。
目前的多数工作都从更加有效的提取视觉特征这一角度进行深入研究。例如,构造更加强大的视觉特征提取骨干网络、引入文本图像矫正机制等,它们在规则、清晰的文本裁剪图像上取得了一定的突破性进展,但在应对不规则、模糊等文本图像时,视觉特征的有效提取已无法满足实际应用中的精度需求。
为了构建更加精准高效的识别网络,本研究受到人类理解模式的启发构造了一种新的层次自注意力编码器(Hierarchical Self-Attention Transformer,HSAT)用于场景文本识别任务,在获取视觉感知信息的基础上结合有效的序列语义信息来推断完整的文本内容。通过联合深度可分离卷积[2](Depth Separable Convolution,DS Conv)与自注意力[3](Self-Attention)来增强捕获视觉感知与文本序列间的相关性,以此获得更为鲁棒的识别结果。本研究可实现卷积神经网络(Convolutional Neural Network,CNN)与Transformer的端到端结构,提升了模型的泛化能力。首先,通过轻量级特征提取网络获取视觉图像的卷积嵌入映射图;然后,采用HSAT对卷积嵌入块进行编码预测,利用视觉与序列特征间的互补性来学习更好的文本特征表示。实验结果表明,本文提出的算法在5个场景文本识别基准数据集上均具备一定的优势,并且以较高的识别速度在精度和效率间达到了更好的平衡。
早期的场景文本识别算法大都是基于文本图像的特点进行研究。通过传统的数字图像处理方法对单个字符进行分割、匹配来识别字符。随着背景日趋复杂的自然场景文本图像的出现,文本识别任务面临更深层的技术挑战。
近年来,依靠大量人工成本进行文本识别的传统方法[4]随着深度学习的兴起被逐渐取代。Le等人[5]最早提出用CNN进行文本识别,该模型在手写字符MNIST数据集上达到了99%的识别精确率,证明了CNN模型的有效性。目前,基于深度学习的场景文本识别算法大致可分为基于字符的识别方法、基于序列的识别方法和基于注意力的识别方法。
基于字符的识别方法[6]采用固定词典模型并结合CNN网络对文本图像进行扫描、分析,生成最终的识别结果。随着更深入的研究,相关人员提出了基于序列的识别方法,例如CRNN[7]首先通过CNN提取一系列特征向量,然后输入至循环神经网络(Recurrent Neural Network,RNN)提取文本区域的字符序列,最后利用连接主义时间分类(Connectionist Temporal Classification,CTC)对序列数据进行预测解码,有效地解决了时序数据在分类上难以对齐的问题。为了提升不规则形状场景文本的识别效果,受到自然语言处理(Natural Language Processing,NLP)领域机器翻译算法的启发,RARE[8],ASRER[9],MORAN[10]等采用注意力机制对文本序列建模并解码,通过关注更大范围的上下文信息来获得更好的文本序列特征。
在自然语言处理任务中,使用注意力机制能够高效地提取稀疏数据的重要特征,因此被广泛应用在机器翻译中。自注意力机制作为注意力机制的变体,不仅继承了注意力机制能够从大量信息中筛选并聚焦在重要信息这一本质特点,同时更加擅长捕捉输入数据间的内部相关性,以此获得更长距离的序列信息。基于这一特性,谷歌提出了基于Transformer的BERT[11]模型在NLP领域取得重大突破。自此,由多头自注意力机制和前馈网络组成的Transformer掀起了计算机视觉领域的研究热潮。
ViT[12]将Transformer引入CV领域进行图像分类任务,输入序列化的图像数据至Transformer模型中进行编码,舍弃了CNN中的归纳偏好问题,以更少的计算量达到了SOTA(State-of-the-art)的性能。DETR[13]将CNN与Transformer网络相结合执行目标检测任务,通过CNN提取的二维表征转换至一维表征,进而输入到Transformer的编解码器中,利用表征间的相互关系来进行全局推理,从而得到预测结果。另外,Transformer也被应用于场景文本识别领域,VisSTR[14]采用ViT编码器结构,在其基础上对大规模的识别数据集进行训练,通过并行的自注意力机制来进行序列的建模和预测,取得了相当不错的性能。
本文设计了一种联合CNN与Transformer的场景文本识别网络。整体网络结构如图1所示。
图1 整体网络结构Fig.1 Overall network architecture
采用MobileNetV2[15]的核心单元来构造视觉特征提取网络,然后通过上采样将视觉特征图恢复至原图尺寸的1/2,并将其输入至HSAT中进行视觉和序列特征间的全局交互以实现有效的字符预测。
考虑到识别算法需要满足实时性需求,本文优先采用轻量级的特征提取网络。在MobileNetV2网络结构的启发下,采用瓶颈残差结构(Bottleneck Residual Block,BRB)作为该特征提取网络的基本构成单元,在提取有效视觉特征的同时极大地减少了模型的参数量。具体来说,将调整尺寸后的图像(224 pixel×224 pixel×1)数据输入至由4个BRB堆叠的网络中并输出相应的视觉特征图。由于图像尺寸太小容易丢失目标位置信息,最后通过一个上采样操作将该特征图尺寸恢复至原图大小的1/2,且保持通道维数不变(112 pixel×112 pixel×128)。
具体实现步骤如表1所示,Input表示输入的尺寸(pixel × pixel)和维度,Operator表示相应的操作,t表示BRB的扩张倍数,C表示输出通道维数。
表1 视觉特征提取器的网络结构
图2为BRB的内部结构,由扩张层、深度卷积层以及映射层组成,与一般的深度可分离卷积不同,它采用2个1×1的卷积结构来平衡在低维和高维空间中提取特征与计算效率的问题。
图2 BRB的内部结构Fig.2 Internal architecture of BRB
自然场景下的图像通常包含复杂的背景噪声,由于模型对文本区域的视觉特征不够敏感,传统的序列编解码方法会导致文本识别结果出现较大的偏差。因此,本文构建了一种更加强大的HSAT,有效地减缓了视觉特征不足对序列预测的影响,同时避免了多阶段传播后梯度可能消失的问题。与RNN的顺序结构不同,HSAT能够以并行计算的方式关注文本序列的全局加权信息。基于传统的Transformer编码器结构,HSAT将深度可分离卷积融合到编码器内部,以替换原先的矩阵计算。
为了在自注意力层的并行计算中增加位置信息的可学习性,本文不再采用人工设置位置编码,而是对视觉提取网络输出的特征图进行卷积操作,使输入的Token map仍然保留二维空间的位置特性。
在传统的Transformer中,编码器端是由6个编码块堆叠而成。输入每个编码块的Token个数取决于上一个编码块的输出,且个数固定。而在HSAT中,Token的个数取决于卷积后的特征图尺寸。为了降低自注意力层的计算复杂度,本文采用3层次结构,即每2个堆叠后采用深度可分离卷积来调整Token map的个数和维度。随着网络的加深,Token map个数则逐阶段递减,以此达到减少计算量的目的。HSAT的结构如图3所示,每个阶段Token map的个数分别为56×56,28×28,14×14;维度变化分别为128,256,512。由于文本识别任务包含39个输出分类,即26个大写字母、10个数字、1个开始标识符[GO]、1个结束标识符[S]以及一个未知字符标识符[UNK],最后利用全连接操作将输出阶段的Token个数调整至36,从而实现字符序列的预测。
图3 HSAT结构Fig.3 Architecture of HSAT
基于3种类型的合成文本数据集进行训练,并在5种类型的场景文本识别基准数据集上进行实验以评估识别算法的性能。
训练数据集由以下3类数据集组成,示例图像如图4所示,包括:
MJSynth(MJ)[16]:该数据集包含890万个文本框图像,对90 000个英语单词应用渲染、着色和投影畸变,与真实图像进行混合。
SynthText(ST)[17]:该数据集最初设计应用在场景文本检测任务,本文对80 000张训练图像的文本区域进行裁剪来适应文本识别任务,大约包含700万个带有字符与单词级的边界框注释实例。
SynthAdd(SA)[18]:该数据集是包含120万个单词框的合成文本图像,其中增加了非字母、数字符号,例如标点符号等数据类型。
图4 MJ,ST的示例图像Fig.4 Image of datasets
5种类型的测试数据集覆盖了规则文本和不规则文本,包括:
IIIT5K[19]:该数据集包含了5 000张在谷歌搜索引擎随机检索的规则场景文本图像。
SVT[20]:该数据集来源于谷歌街景图像,包含904张规则的文本裁剪图像。。
IC13[21]:该数据集包含1 863张单词级注释框的规则裁剪文本图像。
SVTP[22]:该数据集由645个裁剪的单词级图像构成,属于不规则类文本图像。
CUTE[23]:该数据集包含288个裁剪的单词级图像,以弯曲的文本图像为主。
本文从识别的精确度以及识别速度2个方面对场景文本识别算法的性能进行全面分析。为了公平比较,所有评估都是在相同的环境下进行的,即所有评估实验均基于一张NVIDIA GeForce RTX 2080 Ti的GPU进行。
对于识别精度(Text Recognition Accuracy,TRA)的评估,定义如下:
(1)
式中,T表示文本框的总数量;TP表示识别正确的文本框数量。
对于识别速度(Text Recognition Speed,WRS)的评估,时间以ms为单位,计算识别每张文本图像所需要的平均时间,定义如下:
(2)
采用AdaDelta优化器进行训练,并使用以下训练参数:衰减率为0.95,梯度下降步幅为5,Batch Size设置为128(其中,MJ,ST和SA训练数据集的采样比分别为0.4,0.4,0.2),图像尺寸统一调整至224 pixel×224 pixel。此外,本文不采用任何预训练方式,所有训练实验均使用Pytorch 3.6.0在2个型号为NVIDIA GeForce RTX 2080 Ti的GPU上并行训练,共训练10个epoch。
为了丰富文本数据的多样性,使用了随机缩放、旋转和透视等数据增强手段。与常见的目标检测任务不同,该模型的输出分类为36个符号,分别为10个阿拉伯数字和26个不区分大小写的字母符号。
将进行2组消融实验来探究所提出方法的性能改进以及关键贡献的影响。为了公平,所有实验环境均相同。
3.4.1 BRB堆叠网络的有效性
本组实验对BRB堆叠网络的有效性进行了探究,对单独使用HSAT(方法1)、MobileNetV2-HSAT(方法2)以及本文所提出的模型进行评估。结果如表2所示。
表2 采用不同视觉特征提取网络的实验结果
从表2可以看出,联合BRB堆叠网络与HSAT在多个数据集上的平均识别精度为85.6%,比方法1和方法2分别高出0.3%,4.7%。特别的是,本文所采用的BRB网络由MobileNetv2核心单元堆叠而成,其复杂度远小于MobileNetv2的原始结构,但在该识别任务中却获得了相当的性能。
3.4.2 HSAT的有效性
为了验证HSAT的有效性,本文在视觉特征提取网络相同的前提下对CTC(方法1)、Attention(方法2)以及本文的方法进行探究。结果如表3所示。
表3 采用不同序列机制的结果
本文所使用的层次自注意力编码器的识别精度远高于方法1和方法2,这得益于Transformer能进行并行计算以获取全局的序列特征。由于CTC和Attention的解码结果在一定程度上依赖BiLSTM的编码结果,但BiLSTM仍然受到超长距离依赖问题的限制, 而Transformer的并行性有效地解决了该问题。
为了验证所提方法的有效性,本研究与其他较为先进的5种算法进行了比较,表4显示了在III5K、SVT、IC13、SVTP以及CUTE五个数据集上的比较结果,其中加粗字体为最优结果,下划线表示次优结果。
表4 不同基准数据集的识别精度对比
通过对表4的分析可以看出,本文所提出的模型在III5K与CUTE数据集上达到最优,相较于次优结果分别提升了0.8%,0.1%。在SVTP数据集上达到了次优结果。对于规则文本,可以看出本模型在此类数据集上获得了更为显著的结果。对于不规则文本,尽管相较先前算法在识别精度上提升了近20%,但错误比例相对较高。经分析,主要原因在于这类文本图像本身具有光照不均、部分遮挡以及弯曲等容易造成混淆的特点。因此,仍需进一步探索识别此类样本的有效解决方案。图5展示了本方法识别的结果,绿色表示真实字符序列,黑色表示预测序列,红色表示该字符预测错误。
图5 场景文本识别数据集识别结果Fig.5 Recognition results of scene text recognition datasets
同时,该网络的推理时间为6.24 ms,在识别效率上可以达到先进的性能。
本文提出了一种自注意力混合卷积的场景文本识别网络。在轻量级特征提取骨干的基础上通过HSAT加强视觉特征信息与文本语义信息的关联。多模态的全局交互能够有效抑制复杂噪声所带来的影响,使得网络在低分辨率等数据集上获得更好的泛化能力。经实验,结果表明本模型在各个数据集上的性能均优于大多数算法,平均识别精度在85%以上。此外,将进一步考虑实现端到端的场景文本检测识别算法,从而优化在实际项目中的部署。