李 岩, 张敏艺, 宿汉辰, 李芳芳, 李斌阳
(1.国际关系学院 网络空间安全学院, 北京 100191;2.中国传媒大学 广告学院, 北京 100024;3.中南大学 计算机学院, 湖南 长沙 410083)
场景中的文字包含丰富语义信息,场景文本理解在智能交通系统、地理信息定位等领域均有广泛应用。 与文本检测识别[1]等常规理解任务不同,场景文本检索[2]是从场景中搜索并定位与给定查询文本相同或相似的所有文本实例。 具体地,给定待检索的字符串,文本检索算法从场景图像库中检索出包含该字符串的图像,同时定位出该字符串在图像中的位置。 该项技术存在大量的应用需求,如网络图像的安全性审核、图书馆中图书检索以及按照知识点切分教学视频等。
场景文本检索任务通常需要将待查询文本与从场景中识别的单词进行匹配来实现。 随着深度学习技术的广泛应用,利用神经网络学习得到待检索文本与场景文本实例之间的相似度并对其进行排序,选取相似度最高的实例作为最终检索结果的方法成为该领域的主流方法[3]。 然而,此类方法在面对不规则文本实例时,由于无法准确提取不规则文本区域从而导致相似度计算的偏差,严重影响检索效果。
为了解决这一问题,本文对现有端到端网络模型进行重新设计,将不规则文本提取和跨模态相似度学习统一融合到同一框架内,利用学习到的相似度对不规则文本实例排序,从而实现对不规则文本的检索。与现有方法不同,本文提出的方法针对不规则文本进行特别设计,构建高效精准的文本检索模型。
传统的文本检索方法[2]通常只能用来处理手工裁剪后的文本图像。 这类方法将待检索文本字符串与剪裁后的文本图像映射到同一特征空间中并计算它们之间的距离,挑选距离最短的文本图像作为检索结果。 其中,早期的文本字符串使用金字塔式字符直方图( Pyramidal Histogram of Character,PHOC)[2]这类手工设计特征,后续研究工作通过学习莱文斯坦编辑距离[4]直接对文本图像排序,突破了手工设计特征方法的局限。
然而在场景图像中,裁剪良好的文本图像边界框大都不易被检测器自动获取,因此上述方法不能直接应用于场景文本检索任务。 Mishra 等[5]提出将任务分解为字符检测识别和文本查询2 个子任务,采用查询驱动的搜索方法,在查询中找到字符的大致位置,然后施加空间约束以在数据库中生成图像的排序列表。 然而,这类方法的框架在字符检测识别过程中采用人工设计的特征,且分割子任务的方式忽略了待检索文本和检测到的文本之间的相关性和互补性,性能受到极大限制。 Gómez 等[6]首次引入端到端网络用于场景文本检索,可以同时对候选文本及其对应字符的金字塔直方图特征进行预测。
在端到端可训练网络方法中,文本定位模块的融入可以极大地提升性能。 这类方法首先检测并识别场景中的所有文本,将场景图像中包含待检索文本的概率表示为图像中定位的文本中出现待检索文本的频次。 其中,利用跨模态相似度学习度量图像中候选文本与待检索文本的距离成为当前主流的方法[3]。 该方法通过建立端到端网络共同优化场景文本检测和跨模态相似性学习,将场景文本检索任务转换为对检测到的候选文本用学习到的相似性度量进行排序的问题。 然而,该方法在面对复杂场景下的不规则文本时,依然存在严重不足。
深度学习技术的出现显著提高了文本定位的性能,这些方法可以大致分为2 类:基于有锚框方法和无锚框方法。 其中基于有锚框文本检测器受Faster-RCNN[7]和SSD[7]等经典目标检测器启发,常用于形状规则的文本定位, 如 TextBoxes[8], RRD[9],SSTD[10]和RRPN[11]等。
无锚文本检测器将文本检测问题转换为文本分割问题,通常也称为基于像素级分割的方法。 这种方法可以较好地处理场景中的不规则文本,通常建立在全卷积网络( Fully Convolutional Network,FCN)[12]上。 Zhang 等[13]首先用FCN 估计文本并用最稳定极值区域(Maximally Stable Extremal Regions,MSER)方法从这些文本块中检测候选字符。Yao 等[14]使用FCN 来预测文本实例的3 个部分,包括文本/非文本、字符类别和字符连接方向,并将其应用于后续文本检测过程。 EAST[15]和DeepReg[16]采用FCN 预测可收缩的文本位置可能性分数图,对其进行逐像素回归并进行NMS(Non-Max Suppression) 后处理, 实现较好的文本检测效果。PSENet[17]利用FCN 预测具有多尺度的文本实例,并采用一种先进的尺度扩展算法重构整个文本实例,可以将距离相近的文本实例有效分割开。 像素聚合网络(Pixel Aggregation Network,PAN)[18]可以看做PSENet 的改进版本,其核心思想是引入了一种可学习的后处理方法,使其能够通过预测出的相似向量来引导文字像素去纠正核参数。
本文所提方法采用的基本框架如图1[3]所示。主体网络包括2 个分支;一个是图像分支,用以提取所有可能的文本候选框的特征E ;另一个是文本分支,将查询词Q转换为特征F 。 最后,计算F 和E 的相似度,并进行排序得到最终结果。 整个网络将文本检测、文本转换和相似度计算这3 个任务统一到同一个端到端的网络中进行联合优化。
图1 本文提出的文本检索框架说明Fig.1 Illustration of proposed text retrieval framework
具体地,图像分支由文本检测模块和序列到序列模块(Image-S2SM)组成,目的是提取所有可能出现的文本候选框的特征。 针对不规则文本,本文选取PAN[18]作为文本检测模块的主要结构,详见2.2 节。 与一般的目标检测不同,由于场景文本通常以字符序列的形式出现,因此使用基于图像的Image-S2SM 可以显著增强每个候选文本的上下文信息,具体结构如表1 所示。
表1 图像与文本序列到序列模块结构Tab.1 Architecture of Image-S2SM and Text-S2SM
对于给定的一幅图像,检测模块将首先产生K个文本候选框(即产生K个文本实例),通过RoIAlign[19]技术提取感兴趣区域(Region of Interest,RoI)的特征P={pi}K i=1,并将其输入后续的Image-S2SM 中,产生特征E∈RK×T×C,其中T和C分别代表RoI 特征的宽度和通道数。
对于文本分支来说,与图像不同的是,由于查询词无法在神经网络中直接被前向传播,因此需要利用词嵌入模块将查询词转化为特征词。 与Image-S2SM 类似,本分支也使用了Text-S2SM,其结构详见表1。 其中,词嵌入模块由嵌入层和双线性插值算子组成。 给定查询词Q={qi}N i=1,其中N是查询词语集合中的元素个数(即查询词数),单词qi可以表示成一个字符序列为单词qi中所含的字符数,yj是单词qi的第j个字符的独热向量表示。 嵌入层首先将每个字符yj转换为2C维特征,生成每个单词的嵌入特征序列。 然后,每个特征序列通过串联和插值操作成为固定长度特征。 最后,将Q所有特征堆叠为输出特征∈RN×T×2C。 经过单词嵌入模块对查询词的处理后,得到的特征通过序列到序列模块映射到F∈RN×T×C,特征E和F将用于后续的相似度学习任务。
在不规则文本检测模块选取上,本文选取PAN[18],这是一种高效准确的任意形状文本检测器,由一个低计算成本的分割模块和一个后处理模块组成,整体框架如图2 所示,主要包含2 个核心步骤:① 分割网络用于预测文字区域、核区域以及相似向量(其中核区域与PSENet 类似,均为文字区域的缩放);② 从预测的核区域中重建完整的文字实例。
图2 PAN 整体框架Fig.2 Whole framework of PAN
具体地,首先为了加快网络的推理速度,缩减了骨架网络ResNet 特征图的通道数得到Fr。 在特征提取部分使用了特征金字塔增强模块(Feature Pyramid Enhancement Module,FPEM)及特征融合模块(FFM)构建轻量级的特征金字塔网络(Feature Pyramid Networks,FPN)。 单个FPEM 呈U 形结构,由向上尺度(Up-scale)增强和向下尺度(Down-scale)增强2 个阶段组成。 特征经历自上而下融合与自下而上融合2 个阶段,不断增强各个尺度F1,F2,…,Fnc特征信息。 FPEM 级联多个模块后可以通过FFM 将结果进行融合,对得到相同尺寸的特征图进行上采样及拼接操作,得到最终特征图Ff。
在像素聚合阶段使用了聚类的思想从核中重建完整的文字实例。 将文字实例视为聚类结果的类群,则文本实例的核为该类群的中心,文本像素为聚类样本。 为了将文本像素聚类到对应的核,文本像素与和它相同文本之间的距离就要足够小,即最小化Ldis,同时把不同实例拉远,即最大化Lagg。 用这样的方式引导文字像素去纠正核参数,从而提升该模块对于不规则文本检测的能力。
抽取候选文本与查询词的特征E ∈RK×T×C和F ∈RN×T×C后,查询词Q与候选文本P的相似度可用相似度矩阵(Q,P) ∈RN×K表示。 这里,,j(Q,P)的值为特征Fi与Ej的余弦相似度,其公式为:
式中,V表示将二维矩阵重构为一维向量的算子。在训练过程中,预测的相似度矩阵(Q,P)由目标相似度矩阵S(Q,P)进行监督训练。 每个目标相似度Si,j(Q,P)为词对(qi,qj)之间的归一化编辑距离,用式(2)表示。 其中距离(Distance)是莱文斯坦编辑距离[4],表示单词qi的字符数。
除(Q,P)外,还计算(P,P)∈RK×K和(Q,Q)∈RK×K用于辅助训练。 在推理过程中,qi与输入图像的相似度等于(Q,P)的最大值,并以此作为排序依据。 为了进一步弥补视觉特征E 与文本特征F 之间的语义鸿沟,采用 Connectionist Temporal Classification,即CTC 损失[19]对视觉特征与文本字符串进行对齐。 CTC 损失是计算一种损失值,可以对没有对齐的数据进行自动对齐,主要用在没有事先对齐的序列化数据训练上。 在本文实验中,存在很多Sequence to Sequence 结构,需要在预处理操作时进行对齐,如果不对齐而直接训练模型,会由于字符间距离的不同,导致模型很难收敛。
对于训练过程中的损失函数来说,主要由3 部分组成[3]:
式中,Ld为文本图像检测损失[18];Lc为文本图像对齐的CTC 损失[20];Ls[3]为跨模态相似学习损失,采用平滑L1 损失函数Lr进行回归计算:
式中,和Si为预测的相似度矩阵及其关联的目标相似度矩阵;2N和K分别为增强后的查询词数和文本实例数。
本文使用PyTorch 1.8 版本,在Intel 酷睿i5 CPU,单块Titan XP GPU 的平台上进行文本检索模型的训练和评估。 实验与当前最好的文本检索方法STRTDSL[3]进行对比。 同时,对不规则文本模块的骨架网络选取进行了比较分析及中文检索应用实验验证。
街景文本数据集(SVT)[21]有349 张来自谷歌Street View 的图像。 该数据集包含100 张图像组成的训练集和249 张图像组成的测试集。 测试集中含有427 个带标注的单词,被用作文本查询。
场景文本检索数据集(STR)[4]由50 个查询词和10 000 张图像组成。 字体样式和视角多变,极具挑战。
Coco 文本检索数据集(CTR)是Coco-Text[22]的一个子集。 从Coco-Text 中选择500 个带标注的单词作为查询。 然后,在Coco-Text 中使用7 196 张包含此类查询词的图像来形成这个数据集。
中文街景文本检索数据集(CSVTR)[3]由23 个预定义的中文查询词和从谷歌图像搜索引擎搜集的1 667 幅中文场景文本图像组成。 数据集共预定义23 个中文查询词,每个图像都用其对应的查询词进行标注。
AIDATA 数据集是本文建立的一个极具挑战的不规则文本数据集,包括433 张取自CTW1500[23]和Total-Text[24]数据集的图像,其图像具有任意形状文本占比大、文本弯曲程度大的特点,目的是为了更好地验证本文方法在自然场景特别是任意形状不规则文本检索的有效性。
实验结果如表2 所示,MS 代表多尺度测试,该测试通过组合在多种分辨率测试图的输出来实现。在本文实验中,输入图像的较长边分别被调整为
表2 与最先进的方法在SVT,STR 和CTR 数据集上的性能比较Tab.2 Performance comparisons with SOTA text retrieval methods on SVT, STR and CTR dataset
960,1 280 和1 600。 与单尺度测试相比,SVT,STR和CTR 性能分别提高了1.71%,3.24%和1.18%。 不难发现,在所有的数据集上,本文方法在推理速度FPS 下降不大的情况下平均准确率均优于STR-TDSL 方法。 结果表明,本文方法能够在给定查询词的情况下准确定位并检索图像实例。
表3 为本文方法与STR-TDSL 在AIDATA 上的实验结果,不难发现本文在推理速度FPS 和平均准确率这2 个指标上均超过STR-TDSL 方法20%以上,这一较大差距说明STR-TDSL 方法不具备对弯曲程度大的不规则文本的有效检索能力,而本文方法针对不规则文本检索的引入的模块设计是极其有效的。
表3 与最先进的方法在AIDATA 数据集上的性能比较Tab.3 Performance comparisons with the SOTA text retrieval method on AIDATA dataset
具体检索效果示例如图3 所示,其中第1 排为本文方法检索结果,第2 排为STR-TDSL 方法检索结果。
图3 任意形状文本检索效果对比Fig.3 Comparison of retrieval effects for text detection with arbitrary shapes
为了验证不规则文本检测模块中骨干网络的选取对实验结果的影响,将ResNet50 换成轻量级骨干ResNet18 和重量级骨干VGG16。 如表4 所示,在相同的设置下,ResNet50 和VGG16 对CTR 数据集性能提升都在1%以上,对AIDATA 的性能提升都在4%以上。 然而,重量级骨干网络所导致的FPS 下降亦是必然的。
表4 骨架网络性能比较Tab.4 Backbone performance comparison
正如之前所论述的,跨模态相似度学习是本文方法的必要组成部分。 从表5 可以看出,与Baseline 方法相比,在SVT,STR 和CTR 数据集上,CTC 损失上则比Baseline 方法提高了0.56%,2.07%,1.56%。
表5 CTC 损失的消融实验(平均准确率)Tab.5 Ablation experiment of CTC loss (mAP scores)单位:%
研究结果表明了CTC 损失的必要性,CTC 损失可以帮助图像分支聚焦于文本区域,从而提取纯化的视觉特征,便于跨模态相似性度量。
为了进一步验证本文方法对中文文本的通用性,在CSVTR 数据集上进行了中文场景文本检索实验。 本文方法与STR-TDSL 方法进行了比较。 如表6 所示,在3 755 个字符类型的设置下,本文的方法在推理速度保持12. 4 帧/秒的情况下实现了50.33% 的 平 均 准 确 率。 相 比 STR-TDSL 方 法50.12%的平均准确率略有提升。 结果表明,本文方法具有较强的鲁棒性且易于推广到非拉丁文本。
表6 CSVTR 数据集特征维度、检索性能和推理时间比较Tab.6 Feature dimension,retrieval performance and inference time comparisons on CSVTR dataset
本文提出了一种结合任意形状场景文本检测和跨模态相似度学习的端到端框架,该框架可以从自然图像中搜索与给定查询文本相同或相似的文本实例。 实验表明,在3 个基准数据集上,该方法的检索性能均优于目前最先进的检索方法。 此外,本文创建了一个新的弯曲文本数据集AIDATA,并在该数据集上实现理想检索效果。
未来的工作可以从两方面继续优化:一是任意形状文本检测效果的进一步提高,提升框架整体检测与检索性能;二是框架内容的拓展,本文以跨模态相似度为基本准则,未来可以利用自然语言处理技术获取语义上下文信息,以此为准则提升框架整体性能。