[论文阅读]PAN++: Towards Efficient and Accurate End-to-End Spotting of Arbitrarily-Shaped Text

PAN++ 支持任意形状文本的高效和精确的端到端探查

摘要

在过去的几年中,场景文本检测和识别得到了很好的研究。尽管取得了进展,但高效、准确地端到端识别任意形状的文本仍然具有挑战性。在这项工作中,我们提出了一个端到端的文本探查框架,称为PAN++,它可以有效地检测和识别自然场景中任意形状的文本。PAN++基于内核表示,它将文本行重新表示为由外围像素包围的文本内核(中心区域)。通过与现有场景文本表示的系统比较,我们表明我们的核表示不仅能描述任意形状的文本,而且能很好地区分相邻文本。此外,作为基于像素的表示,核表示可以由单个完全卷积网络预测,这对于实时应用非常友好。利用核表示的优点,我们设计了如下一系列组件:1)由堆叠特征金字塔增强模块组成的计算高效的特征增强网络;2)与像素聚合(PA)协作的轻量级检测头;3)具有掩蔽RoI的有效的基于注意力的识别头。得益于内核表示和定制的组件,我们的方法在保持竞争精度的同时实现了高推理速度。大量实验表明了我们方法的优越性。例如,所提出的PAN++在总文本数据集上以29.2 FPS实现了64.9的端到端文本探查F-measure,这显著优于先前的最佳方法。

1 引言

在自然场景中读取文本是许多计算机视觉应用中的一项基本任务,例如文本检索、办公自动化和可视化问题回答。凭借深度神经网络[1]、[2]的强大表示,场景文本检测和识别在过去几年中取得了巨大进展[3]、[4]、[5]、[6]、[7]、[8]。尽管如此,这些方法中仍然存在三个主要的限制,并且阻碍了它们在现实应用中的部署。首先,许多工作通过单独关注文本检测或文本识别,将文本检测和识别作为单独的任务来处理。对于大多数现有的文本检测器[3]、[4]、[12],首先使用卷积神经网络来生成输入图像的特征图,然后使用解码器来生成场景文本的矩形或多边形边界框。另一方面,文本识别方法[5],[6],[13]通常在文本行的图像块之上进行顺序预测网络。迄今为止,很少有方法探索这两项任务之间的互补性。因此,当将这些独立的方法组装到单个场景文本阅读系统中时,会引入计算开销。

其次,大多数端对端文本观察器[7],[14],[15]通常设计为读取水平或定向文本行。这些方法假设场景文本是直的并且是自然场景,例如,招牌上的文字和街道上的海报。如图1(a)所示,专用于直文本行的方法将不能正确地检测和识别弯曲形状的文本行。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ye2XjLoG-1624501204071)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0d17bdd7-684f-46a7-80cf-1d14390a5213/QQ20210520141028.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kO90GQ1E-1624501204073)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6cf3300d-f963-46c1-b470-dad1faa258b6/QQ20210520141028.png)]

图1 不同场景文本表示的比较。四边形表示法[3],[7],[9]无法定位弯曲的文本行。像素表示[10]不能分隔相邻的文本行。©虽然边界框像素(bbox-pixel)表示[7]、[8]、[11]可以容纳弯曲和相邻的文本行,但它需要两阶段预测,这可能在计算上很昂贵。我们的内核表示是一阶段的,对弯曲和相邻的文本行是鲁棒的。

最后,现有的端到端文本观察器[7],[8],[14],[15],[16]的效率对于实际应用来说仍然不够。虽然最近的一些方法[8],[16]已经提高了端到端任意形状文本定位的准确性,但是由于它们的重模型或复杂管道,它们的推理速度较低。因此,如何为任意形状的文本设计一个高效、准确的端到端检测器仍然是一个悬而未决的问题。

为了解决上述问题,基于我们在[4]、[17]中发表的初步结果,这里我们使用核表示来描述由外围像素包围的文本核(中心区域)构成的文本行。这是受图1中列出的现有场景文本表示的系统研究(dis)优点的启发。四边形表示法[3]、[7]、[9]是最常用的一种。如图1(a)所示,它是专门为直的文本行设计的,不能为弯曲的文本行提供紧密的边界。相比之下,在[10]中提出的像素表示法足够灵活,可以定位弯曲的文本行。注意,利用这种表示,相邻的文本行可以如图1(b)所示被粘连。虽然蒙版R-CNN [18]中提出的包围盒像素(bbox-pixel)表示(见图1©)可以解决上述问题,但它仍然遵循“检测然后分割”的范式[18],这通常很耗时。相比之下,如图1(d)所示,我们的核表示可以有效区分紧密放置的弯曲文本行,这并不次于bbox-pixel表示。此外,它可以通过单个卷积网络进行预测,这在概念上很简单,适合实时应用。通过利用内核表示的优点,我们进一步提出了一个端到端的任意形状的文本观察器,即PAN++1,它可以在准确性和推理速度之间实现良好的平衡。PAN++遵循图3(h)所示的流水线,包含两个主要步骤:1)通过分割网络检测文本行;以及2)通过基于注意力的解码器识别文本内容。

为了实现高效率,我们通过以下四种设计来降低每一步的时间成本:
1)首先,采用轻量级主干网络(例如,ResNet18 [19])作为分段网络。然而,由轻量级主干提取的特征通常具有小的感受野和弱的表示能力。
2)为了弥补这一缺陷,我们提出了一种低计算量的特征增强网络,该网络由堆叠的特征金字塔增强模块组成。考虑到FPEM是由可分离卷积构建的U形模块(见图5),它可以用最小的计算开销增强多尺度特征。此外,FPEM是可堆叠的,这允许我们通过将FPEMs堆叠到轻量级主干来补偿网络的深度。
3)为了检测文本行,我们设计了一个简单的检测头和像素聚合。检测头预测文本区域、文本核和实例向量,预测器将网络预测组装成完整的文本行。
4)最后,为了识别文本内容,我们提出了一个称为Masked ROI的特征提取器和一个轻量级的识别头,它只包含两个LSTM [20]层 和 两个多头注意层[21]。得益于上述设计,PAN++在保持竞争精度的同时,实现了较高的推理速度。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CiAfHOke-1624501204075)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/05000c59-82bd-469c-87fa-5edb32b6ad83/QQ20210520141028.png)]

图2 端到端文本识别—对全文的度量和推理速度。PAN++相比同行有着极端的优势。“PAN++ 736”(输入图像的短尺寸为736像素)比ABCNet [22]好5.0点,推理速度更快。“PAN++ 512”的执行速度比同类产品快11 FPS以上,同时保持了具有竞争力的端到端文本识别F-measure。

与我们的会议版本PSENet [4]和PAN [17]相比,PAN++的主要扩展在于文本识别模块和端到端的文本识别框架。在会议版本中,我们提出了内核表示,并将其应用于文本检测。与前人不同的是,我们将文本检测器扩展为端到端的文本检测器,它可以快速检测和识别任意形状的文本行。为此,我们重构了PAN++的整体架构,并在架构中精心集成了一个定制的特征提取器(即Masked RoI)和一个轻量级的文本识别头。此外,我们还在继承会议版本[17]的同时,对文本检测模块进行了改进。1)我们系统地将我们的内核表示与其他现有的文本表示进行比较。2)我们通过将[17]中提出的原始FPEM和[17]中的FFM合并成一个模块来简化FPEM,这样更有效。3)我们通过在判别损失中增加一个背景项,使PA意识到背景元素。结合这些改进,我们将原始文本检测器升级为一个高效的端到端任意形状的文本观察器(即PAN++)。为了证明我们的方法的有效性,我们在四个具有挑战性的基准数据集上进行了广泛的实验,这四个数据集是:Total-Text [23],CTW1500 [24],ICDAR 2015 [25]和MSRA-TD500 [26]。请注意,总文本和CTW1500是为曲线文本检测创建的数据集。如图2所示,在全文本数据集上,“PAN++ 736”的端到端文本点样F-measure达到68.6%,比ABCNet [24]高4.4个点,而其推理速度更快。而且“PAN++ 512”达到29.2 FPS,比最好的同行快11 FPS。与此同时,它仍然实现了具有竞争力的端到端文本识别F-measure (64.9%),高于大多数现有方法。最后,PAN++在其他基准上也显示出了很好的检测和识别性能,包括面向多对象和长文本数据集。

总之,我们的主要贡献有四个方面:

  1. 提供了核表示的定义,并且系统地比较了它与其他广泛使用的表示形式,显示了核表达的在概念上简单与灵活,与实时应用的友好。
  2. 基于核表示,提出了一种新的端到端任意形状文本检测的框架,PAN++,达到了一个准确性与推理速度均衡的极好状态。
  3. 设计并改进了针对框架的一系列高效组件,包括一个由堆叠特征金字塔增强模块(FPEMs),一个像素聚合的检测头(PA),一个特征提取器(Masked RoI)和一个轻量级基于Attention的识别头构成的特征增强网络。
  4. 提出的PAN++在曲型文本基准上达到SOTA表现,同时保持了快的推理速度。值得注意的是,在TotalText数据集上,PAN++(S:512)以 29.2 FPS 产生了端到端 F-Measure =64.9% ,与前一个最佳模型相比,保证竞争精度的同时,快了11 FPS。

2 相关工作

2.1 端到端文本探查(Spotter)

端到端文本观察器的目标是在一个统一的网络中同时检测和识别文本行。在过去的几年里,深度学习的出现大大提高了文本识别的性能。如图3所示,我们总结了深度学习时代与我们相关的代表性文本观察者。这些方法大致可以分为两类:1)规则文本点样器,2)任意形状的文本点样器。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oOali8sU-1624501204077)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/33e1e608-435f-422e-966f-f038f7574933/QQ20210520141028.png)]

图3 与我们相关的代表性文本探查器的整体pipeline。

2.1.1 规则文本探查(Spotter)

受Faster R-CNN的灵感激励,Li等人提出了第一个水平方向文本探测的框架,包含了一个文本检测的提案网络和一个基于CTC方法的检测,如图3(a)所示。同时,Busta等设计了一个与[14]工作方式相似的网络。但是它的检测头对水平和多方向的文本实例都更有效。NguyenV an等人[29]开发了一个端到端的文本阅读框架,它结合了一种基于池的场景文本建议技术,其中错误警报消除和单词识别同时进行。随后,刘等人[7]提出了一种如图3 (b)所示的称为的多方向文本点样器,它配备了一个新的RoI提取器(即RoIRotate),用于提取四边形文本实例的特征。何等人[15]也开发了类似的框架,其识别头由基于注意的序列到序列解码器实现。尽管这些方法在直文本基准(如IC15 [25]和MSRA-TD500 [26])上取得了良好的性能,但它们无法检测和识别弯曲形状的文本行(见图1(a))。

2.1.2 任意形状的文本探查(Spotter)

如图3©所示,Liao等人提出了Mask TextSpotter(MTS),给Mask R-CNN加入了一个字符级监督来同时检测和识别文字行和字符。这可能是第一个任意形态的字符探查器。但是字符级的标注不总是可用的。Mask TextSpotter的改进版本[30]消除了字符级注释的依赖性。[31]中的CharNet是第一个如图3(d)所示的单级任意形状文本点样器。与Mask TextSpotter类似,它需要字符级注释来进行训练。Feng等人[32]提出了TextDragon,如图3(e)所示,它包含一个新颖的RoI提取器(即RoISlide),通过多个文本段的特征来表示一个文本行。Qin等[16]设计了一种任意形状的文本探查器,如图3(f)所示,在Mask R-CNN上增加了一个基于注意力的文本识别头,可以同时检测和识别不规则的文本行。最近,Liu等人[22]用参数化贝塞尔曲线来表示不规则文本实例,并提出了一个基于回归的任意形态文本探查器ABCNet(Fig.3(g))。使用基于像素(mask)表示的[4],[8],[16]可能比贝塞尔曲线表示法更加灵活和可靠,因为后一种方式只能表示特定约束下的一系列曲线。

2.1.3 实时任意形态的文本探查(Spotter)

在[7]中,Liu等人提出了一种快速文本检测器FOTS,用于多方向文本的检测和识别。然而,FOTS不能处理弯曲的文本行。Sec. 2.1.2中提到的大多数方法[8]、[16]、[30]、[31]、[32],在识别任意形状的文本方面取得了很高的准确性,但是在这些方法中很少涉及推理速度。这启发我们在这项工作中设计一个改进的基于像素的表示,并在此基础上开发一个高效的端到端文本识别框架。

2.2 场景文本检测

场景文本检测是文本识别系统的关键部分。近年来,基于深度学习的方法已经成为文本检测的主流。Tian等人[12]和Liao等人[33]成功地将对象检测框架用于文本检测,并在水平文本数据集上取得了良好的性能。然后,研究人员考虑了文本实例的方向,并开发了不同的方法[3]、[9]、[34]来检测多方向的文本实例。这些方法大多通过回归四边形包围盒进行文本检测,无法检测出弯曲的文本行。为了检测弯曲的文本行,一些早期作品[34]、[35]遵循自下而上的框架,首先检测字符或文本片段,然后将其链接起来。最近,一些研究人员设计了基于分割的方法[4]、[17]、[36]或结合分割和盒/点回归的优点[11]、[37]、[38],在弯曲文本检测基准上取得了优异的性能。这些方法被设计来单独解决文本检测,并且通常使用单独的模型来实现文本识别。

在这项工作中,我们不仅通过总结我们的会议版本(即PSENet [4]和PAN [17])的优势来提高文本检测的性能,而且还在我们的框架中仔细集成了一个识别模块,以构建一个统一的文本识别模型。

2.3 场景文本识别

场景文本识别是文本识别系统的最后一个步骤,目的在于从视觉输入中解码字符序列。存在的文本识别器可以简单的分成三类,**1)基于字符的文本识别器,2)基于CTC的文本识别器,和3)基于attention的文本识别器。**基于字符的识别器[40],[41]大多第一个检测单独的字符,然后把他们拼成一个单词。基于CTC的方法[5],[42],[43],[44]通常在CNN的顶上叠加RNN来捕捉长范围序列特征。这些方法使用CTC loss训练,并且它们的最终预测是通过在测试阶段移除重复的输出而产生的。在[6],[13],[45],[46]中,RNN或Transformer[21]用于基于来自attention机制和先前步骤的特征来预测每一步的角色。当预测到序列结束(EOS)或达到最大步骤数时,该过程将停止。为了识别出不规则文本行,Shi等人[6]和Zhan等人[47]在识别前使用了一个空间矫正网络来矫正不规则形状文本行成直线。除此之外,一些最近工作[13],[45]在2维特征图上应用attention机制来识别不规则形状的文本。

受[13]和[21]的激励,我们为不规则文本识别设计了一个轻量级的基于attention的识别头,利用multi-head attention来分别融合CNN和RNN的视觉与时间特征。

3 提出方法

3.1 核表示

如图1 (d)所示,内核表示将文本行公式化为由外围像素包围的文本内核。换句话说,对于每个给定的文本行,我们首先通过文本内核(文本行的中心区域)来定位它。然后,我们通过在文本核周围包含文本像素来恢复文本行的完整形状。

一般来说,我们的内核表示有四个优点。1)作为一种基于像素的表示,它足够灵活,可以表示任意形状的文本行;2)由于文本核之间存在较大的几何余量,核表示能够准确区分相邻的文本实例,解决了图1 (b)所示的相邻文本行造成的粘连问题;3)内核表示完全基于像素,这意味着它可以很容易地由单个完全卷积网络预测,这对于实时应用是友好的。4)内核表示的标签可以简单地生成,而不需要额外的注释,如图10所示。

3.2 整体框架

基于核表示,我们开发了一个PAN++的高效文本识别框架,如图4所示。为了高效率,主干网(CNN)应该是轻量级的,比如ResNet18。然而,由轻量级骨干网络产生的特征通常具有小的接受域和弱的表示能力。为了解决这一问题,我们提出了一种能够有效细化特征的特征增强网络。它由几个堆叠的特征金字塔增强模块组成。如图5所示,FPEM是可堆叠的,计算效率高,可以连接到主干网后面,使功能比以前更深入和更具表现力。对于文本检测,我们提出了一种简单的像素聚合检测头,它预测:1)文本区域来描述文本行的完整形状,2)文本核来区分不同的文本行,3)实例向量从文本核中恢复完整的文本行,然后这些预测被像素聚合结合到文本行中。在文本识别中,利用Masked RoI提取文本行的特征点,并提出一种基于注意力的识别头来识别文本内容。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NxlnCZLE-1624501204078)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8e8fe335-79ae-4cfa-ad3a-faab50539f59/QQ20210520141028.png)]

图4 PAN++整体架构。轻量级主干网络的功能通过堆叠的功能金字塔增强模块(FPEMs)得到增强。在检测部分,网络预测文本区域、文本核和实例向量,并通过像素聚合将它们组装成文本行。在识别部分,Masked RoI提取文本行的特征,然后将这些特征反馈给基于注意力的识别器来预测文本内容。

在推理阶段,我们首先将一个大小为 H × W × 3 H × W × 3 H×W×3的输入图像馈送到一个轻量级主干网络(例如,ResNet18 [19])。主干网的conv2、conv3、conv4和conv5级生成四个特征图(图4 (b)),其分辨率分别为输入图像的1/4、1/8、1/16和1/32。然后,我们通过1×1卷积将每个特征映射的通道数减少到128,并获得薄特征金字塔 F r F_r Fr(图4 ©)。 N s t k N_{stk} Nstk 堆叠的FPEMs增强了特征金字塔。获得增强特征金字塔 F e F_e Fe(图4(d))后,我们上采样并拼接了 F e F_e Fe的特征图层成最后特征图用于后续的文本检测和识别。最后的特征图层Ff(图4(e)),尺寸是 H / 4 × W / 4 × 512 H/4 × W/4 × 512 H/4×W/4×512。接下来,基于 F f F_f Ff,检测头预测文本区域,文本核,和实例向量,然后利用像素聚合(PA)把他们集合成一个完成的文本行(图4(i))。在文本识别中,我们首先用 3 x 3 卷积减少Ff的通道数至128,然后根据预测的文本行应用Masked RoI提取特征块。最后,使用提取的特征块作为输入,识别头识别每块的文本内容,如图4(j)。

训练过程中,我们使用损失函数 L t e x L_{tex} Ltex L k e r L_{ker} Lker L a g g L_{agg} Lagg L d i s L_{dis} Ldis来优化预测的文本区域、文本核和实例向量。同时,损失函数 L r e c L_{rec} Lrec用于优化识别头的预测。训练时为了保持识别特征的一致性,我们使用GT文本框来提取特征块。

3.3 特征金字塔增强模块

Feature Pyramid Enhancement Module(FPEM)是特征增强网络的基础单元,如图5所示的U形,有2个阶段上尺度增强和下尺度增强。上尺度增强应用于输入特征金字塔,以32、16、8和4步长迭代增强了输入特征图。下尺度增强阶段,输入是上尺度增强的输出,4步到32步地迭代增强。最终,输出特征金字塔是输入特征金字塔与下尺度增强结果的像素级加法得到。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W9dp1kcd-1624501204080)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/51cbc25b-b5ae-487f-9517-88acbe048887/QQ20210524101914.png)]

图5 FPEM细节。“+”像素级加法,“2 x ” 2 x 双线性上采样。“DWConv”,“Conv”,“BN”分别代表逐通道卷积(Depthwise conv),常规卷积,批量归一化

如图5虚线框所示,我们使用分离卷积(一个3 x 3逐通道卷积后跟一个 1 x 1映射)代替常规卷积来实施FPEM的加法。因此,FPEM以较小的计算开销增大了感受野(多亏了 3 x 3逐通道卷积)和加深网络(多亏1x1映射)。

与FPN相似,FPEM可以通过融合高低级信息来增强多尺度特征图。除此之外,FPEM还有两个优势:1)FPEM是可堆叠模型;随着堆叠数量 N s t k N_{stk} Nstk增加,特征图会被整合地更加充分,感受野也会更大。2)FPEM是高效计算的。受分离卷积的好处,FPEM只涉及边缘计算开销。如表8所示,带有FPEM的模型运行速度比带有FPN模型在IC15数据上快8.7FPS,并保持了一个更高的端到端文本探测F-measure。

3.4 文本检测

3.4.1 检测头

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y1gLVIWC-1624501204080)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0ebe4b09-3edf-4937-92a2-0548c749931c/QQ20210524101914.png)]

图6 检测头的细节。“Conv”和“BN”表示常规卷积,批量归一化。

PAN++的检测头只包含两个卷积,如图6所示。检测头的输出是文本区域、文本内核、和实例向量。1)文本区域保持了完整的文本行形状,但是紧密排列的文本行通常重叠(图4(f))。2)相反,文本内核可以很容易地区分相邻文本实例,但是它们失去了完整地文本行形状。3)实例向量是高维度表示,包含了每个像素的信息。换句话说,属于同一文本行的像素趋向于有相似的实例向量(图4(h))。因此实例向量可以将文本区域中的像素指向相应的文本核,成功地结合了文本区域和文本核的优点。

三个输出相互补充,使得描述任意形状的文本行成为可能。

3.4.2 像素聚合

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RX1wGJxi-1624501204081)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0d03ef07-166b-4962-80fe-f577ddc2bdc8/QQ20210524101914.png)]

图7 PA说明。绿色箭头表示聚合损失Lagg。红色箭头表示区分损失Ldis。

Pixel aggregation(PA)应用于优化实例向量和组合检测头的输出。我们借用聚合的想法来设计PA。如图7所示。如果我们把不同的文本行看作不同的聚类,文本核当作聚类中心,文本区域的像素点就是样本中需要被聚类的对象。

自然地,把像素聚类到对应的文本核(图7绿色箭头),同一个文本行的像素与核的距离应该是最小的。在训练阶段,我们使用 L a g g L_{agg} Lagg聚合损失如Eq.1。

L a g g = 1 N ∗ ∑ 1 ≤ i ≤ N 1 ∣ T i ∣ ∑ p ∈ T i D 1 ( p , K i ) L_{agg} = \frac1N *\sum_{\mathclap {1\le i\le N}}\frac 1 {\lvert{T_i}\rvert}\sum_{\mathclap{p \in T_i}} D_1(p,K_i) Lagg=N11iNTi1pTiD1(p,Ki)

D 1 ( p , K i ) = l n ( R ( ∥ F ( p ) − g ( K i ) ∥ − δ a g g ) 2 + 1 D_1(p,K_i) = ln(R (\Vert F(p) - g(K_i)\Vert - \delta _{agg})^2+1 D1(p,Ki)=ln(R(F(p)g(Ki)δagg)2+1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XLB2Xbei-1624501204082)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1d8f2926-638d-4539-83aa-f0c808524124/QQ20210524101914.png)]

通常, L a g g L_{agg} Lagg用来将文本像素拉到目标文本核。如Eq1,2中的符号所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jLZEJjJB-1624501204083)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/de10675a-1ae3-4a47-b4cb-2ff4f035adb2/QQ20210524101914.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jy4OuLyE-1624501204084)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/9263c960-0d8f-4d90-b06f-b010c2bcb4d6/QQ20210524112106.png)]

另外,聚类中心需要保证相应的区分度。作为结果,文本核的实例向量应该与其他核与背景保持一定距离,如图7的红色箭头所示。这条规则可以用 L d i s L_{dis} Ldis表示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xOyFVzxx-1624501204085)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/969edc77-f82f-41ac-a15f-d78f00df7dce/QQ20210524101914.png)]

区分损失 L d i s L_{dis} Ldis的目的是将文本核与背景相互远离,Eq.3、4、5的符号如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vacgM84s-1624501204085)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7ed72642-3306-4496-b561-f8a4b00f4d7d/QQ20210524101914.png)]

在测试阶段,我们使用预测的实例向量来指导文本区域中的像素点所对应的核。如图8所示,后处理有3步:

1)在文本核的分割结果中寻找连通分量,并将每个连通分量视为一个文本核。

2)对于每个文本核Ki,当它们的实例向量的欧氏距离小于d时,在文本区域中包含它的相邻像素p (4-way)。

3)重复步骤2直到文本区域中没有相邻像素。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O0sF0jYX-1624501204086)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/2a3508ed-a11f-40bd-9c54-4590a39e96d6/QQ20210524101914.png)]

图8 后处理步骤。当融合临近像素时,实例向量的欧式距离必须小于d。这个条件减轻了将冲突像素分配给不正确的文本核的问题。

3.5 文本识别

3.5.1 Masked RoI

RoI掩膜是一个RoI提取器用来提取任意形态文本行的固定尺寸特征块。它包含4个步骤:

1)计算包含目标区域的最小垂直矩形;

2)提取矩形中的特征块;

3)通过特征块与二值掩膜的乘法过滤噪声特征。其中目标文本行以外的区域为0。

4)改变特征块的大小至一个固定尺寸。

以上步骤可以总结为Eq.6:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QDivhsV0-1624501204087)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/89a84a75-82dd-4cc4-9a96-9b49fee21575/QQ20210524101914.png)]

其中 m i m_i mi i t h ith ith 文本行的二值化掩膜。 R e c t ( ⋅ ) Rect(·) Rect()指二值化掩膜的垂直矩形边框。 C r o p ( F f , ⋅ ) Crop(F_f,·) Crop(Ff,)是从特征图Ff中剪裁出(垂直)RoI区域特征块的操作。 o o o 是像素级乘法。 R e s i z e h × w Resize_{h × w} Resizeh×w(·)表示将特征图的尺寸通过双线性插值(Bilinear interpolation)变为 h × w h×w h×w。所有实验中, h = 8 h=8 h=8 w = 32 w=32 w=32

提出的Masked RoI有两个优势:

1)目标文本行的二值掩膜可以消除背景或者其他文本行引起的噪声特征,以便于准确提取任意形态文本行的特征。

2)Masked RoI跳过了空间矫正步骤(比如 STN in ASTER[6]),减少了特征提取的时间开销。

虽然我们的Masked RoI与[16]提出的Rol Masking有点类似,但它们之间有一个主要区别。RoI Masking中,用于过滤噪声特征的掩膜是一个实例级的注意力图(instance-wise attention map),软加权的(即,权重为浮点数)。这个方法不适用于PAN++,这种不预测实例级文本行软掩膜。不同地,我们的Masked RoI通过二值掩膜移除了噪声,这是PA算法很容易得到的。并且,噪声权重在二进制掩膜中是0.因此,提出的Masked RoI比RoI Masking能更彻底地移除噪声。

3.5.2 识别头

我们的识别头是带有多头注意力的Seq2Seq模型,如图9所示,由启动器与解码器构成。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6tX1uPZS-1624501204088)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/96da724b-5f83-4ba7-a89a-6f303cf776a9/QQ20210524101914.png)]

图9 识别头的细节。"SOS"和“EOS”分别表示一个字符串的开头与结束。A表示多头注意层。 ξ \xi ξ表示embedding层, C \cnums C表示维度通道的拼接操作。

启动器是用来找到SOS的,它不一定是任意形状文本行的最左边区域。启动器至包含一个线性变换(embedding layer) ξ 1 \xi_1 ξ1和一个多头注意层 A 1 A_1 A1。如Eq.7所示,嵌入层 ξ 1 \xi_1 ξ1将SOS标识(one-hot)转换成一个128维的向量,然后将向量与展开的特征块 F r o i F_{roi} Froi一起输入到多头注意层 A 1 A_1 A1,得到SOS的特征向量 f s \bold f_s fs,这也是初始时刻解码器的输入。

f s = A 1 ( ξ 1 ( " S O S " ) , F r o i ) \bold f_s= A_1(\xi_1("SOS"),F_{roi}) fs=A1(ξ1("SOS"),Froi)

解码器由两个LSTM层和一个多头注意层 A 2 A_2 A2构成。在初始时刻T=0,解码器将SOS的特征向量 f s \bold f_s fs和LSTM初始状态作为输入。T=1,输入T=0的隐藏状态 h 0 h_0 h0与SOS标识,预测出当前时刻的输出表示 y 1 y_1 y1。之后,前一刻的输出给进LSTM直到预测出EOS token。过程表示如下:

y t = a r g m a x ( F C ( A 2 ( h t , F r o i ) ) ) , 1 ≤ t ≤ T y_t=argmax(FC(A_2(\bold h_t,F_{roi}))), 1 \le t \le T yt=argmax(FC(A2(ht,Froi))),1tT

h 0 = L S T M ( f s , 0 ) \bold h_0=LSTM(\bold f_s, \bold 0) h0=LSTM(fs,0)

h t = L S T M ( ξ 2 ( y t − 1 ) , h t − 1 ) \bold h_t = LSTM(\xi_2(y_{t-1}),\bold h_{t-1}) ht=LSTM(ξ2(yt1),ht1)

0 0 0表示零状态。所有输入标识(包括SOS和EOS)都用one-hot向量表示,后面接着嵌入层 ξ 2 \xi_2 ξ2.。 y t y_t yt是t时刻的输出符号。训练阶段,解码器的输入符号是GT序列的字符。

识别头是轻量级的同时保持了好的准确性。识别头没有编码器,解码器只有两个LSTM层和一个注意力层。并且,注意力层是基于多头注意力的,可以有效融合LSTM特征(temporal-时间)和CNN特征(visual-视觉)。除此之外,多头注意力的计算成本比[13]中使用的普通注意力模块要低。

3.6 标签生成

如图4(f)(g)所示,我们的方法预测了文本区域和文本核的掩膜,因此,训练时也需要对应的标签掩膜。

对于文本区域,他们的掩膜标签可以直接由填充gt边框生成,文本像素为1,非文本像素为0。在此,我们将文本区域的掩码标签表示为 G t e x G_{tex} Gtex

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pmCECB15-1624501204089)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8150cfe3-d73f-460b-aebf-3ddf88366d70/QQ20210524101914.png)]

图10 标签生成说明。(a)收缩边界 m m m,原始边框 b o b_o bo,和收缩后边界 b s b_s bs。(b)文本行的原始边框。(c)文本核标签。

对于文本核区域,我们生成他们的掩膜标签通过将原始边界框缩小一定的距离并填充。如图10所示,蓝色边界的多边形表示一文本行的原始边框。为了生成核标签,首先利用Vatti剪裁算法将原始边框 b o b_o bo缩小 m m m像素,得到缩小后的边框 b k b_k bk。之后将 b k b_k bk转换成一个二值图,这就是文本核的标签。为了便利,记为 G k e r G_{ker} Gker

在核标签生成期间,如果考虑收缩率 r ∈ [ 0 , 1 ) r \in [0, 1) r[0,1),原始边界框 b o b_o bo和收缩边界框 b k b_k bk之间的收缩余量 m m m可以计算为:

m = A r e a ( b o ) × ( 1 − r 2 ) P e r i m e t e r ( b o ) m=\frac {Area(b_o) × (1-r^2)} {Perimeter(b_o)} m=Perimeter(bo)Area(bo)×(1r2)

其中, A r e a ( ⋅ ) Area(·) Area()是计算多边形面积的函数; P e r i m e t e r ( ⋅ ) Perimeter(·) Perimeter()是计算多边形周长的函数。在训练阶段,我们可以通过调整收缩率 r r r来控制目标文本核的尺寸。

3.7 损失函数

损失函数公式可以用下Eq.12表示:

L = L d e t + L r e c L = L_{det}+L_{rec} L=Ldet+Lrec

L d e t L_{det} Ldet L r e c L_{rec} Lrec分别是检测损失和识别损失。

具体地, L d e t L_{det} Ldet如下计算:

L d e t = L t e x + α L k e r + β ( L a g g + L d i s ) L_{det}=L_{tex}+\alpha L_{ker}+\beta (L_{agg}+L_{dis}) Ldet=Ltex+αLker+β(Lagg+Ldis)

其中, L t e x L_{tex} Ltex是文本区域分割损失, L k e r L_{ker} Lker是文本核分割损失, α \alpha α β \beta β用来平衡 L t e x L_{tex} Ltex L k e r L_{ker} Lker L a g g L_{agg} Lagg L d i s L_{dis} Ldis之间重要性的。所有实验中 α = 0.5 \alpha=0.5 α=0.5 β = 0.25 \beta=0.25 β=0.25

考虑到文本和非文本像素之间的极端不平衡,我们遵循[4],[17]并使用了dice loss[53]来优化文本区域 P t e x P_{tex} Ptex和文本核 P k e r P_{ker} Pker的分割结果。所以 L t e x L_{tex} Ltex L k e r L_{ker} Lker如下:

L t e x = 1 − 2 ∑ i P t e x ( i ) G t e x ( i ) ∑ i P t e x ( i ) 2 + ∑ i G t e x ( i ) 2 L k e r = 1 − 2 ∑ i P k e r ( i ) G k e r ( i ) ∑ i P k e r ( i ) 2 + ∑ i G k e r ( i ) 2 L_{tex}=1-\frac {2\sum_{\mathclap i}P_{tex}(i)G_{tex}(i)} {\sum_{\mathclap i}P_{tex}(i)^2+\sum_{\mathclap i}G_{tex}(i)^2} \\L_{ker}=1-\frac {2\sum_{\mathclap i}P_{ker}(i)G_{ker}(i)} {\sum_{\mathclap i}P_{ker}(i)^2+\sum_{\mathclap i}G_{ker}(i)^2} Ltex=1iPtex(i)2+iGtex(i)22iPtex(i)Gtex(i)Lker=1iPker(i)2+iGker(i)22iPker(i)Gker(i)

P t e x ( i ) P_{tex}(i) Ptex(i) G t e x ( i ) G_{tex}(i) Gtex(i)指文本区域分割结果和GT图的第 i t h ith ith像素值。相似地, P k e r ( i ) P_{ker}(i) Pker(i) G k e r ( i ) G_{ker}(i) Gker(i)表示文本核预测图和GT图的 i t h ith ith像素值。在计算 L t e x L_{tex} Ltex时,我们也采用了OHEM(Online Hard Example Mining,在线难实例挖掘)来忽略简单非文本像素。注意,当计算 L k e r L_{ker} Lker L a g g L_{agg} Lagg L d i s L_{dis} Ldis时,仅将文本像素参与考虑。

L r e c L_{rec} Lrec计算公式如下:

L r e x = 1 ∣ w ∣ ∑ 0 ≤ i ≤ ∣ w ∣ C r o s s E n t r o p y ( y i , w i ) L_{rex} = \frac 1 {\vert w \vert} \sum_{\mathclap {0 \le i \le {\vert w \vert}}}CrossEntropy(y_i,w_i) Lrex=w10iwCrossEntropy(yi,wi)

其中 w w w是包含EOS符号的GT转录(文本内容)。 ∣ w ∣ |w| w表示转录中的字符数。 w i w_i wi是转录中的 i t h ith ith字符。

4 实验

为了验证PAN++的有效性,我们通过两个挑战任务来评估:1)文本检测;2)端到端文本探查。

4.1 数据集

4.1.1 曲型文本数据集

Total-Text 是一个用于detection和spotting的任意形态文本数据集,包括水平,多方向,曲型。该数据集由1225张训练图片和300张测试图片构成,均为多边形标注与单词级转录。

CTW1500 是任意形态文本检测的数据集。有1000张训练图像,500张测试图像。不同于Total-Text,图片中的字符是以文本行 为单位标注的。CTW1500的文本行很长,用14个点的多边形标注。

4.1.2 直线文本数据集

ICDAR 2015(IC15)是一个常见的用于端到端检测识别的数据集。它包括共1500张图,1000张训练,500张测试。该数据集中,文本行用四边形标注,转录为单词级。

MSRA-TD500 包括300张训练图像,200张测试图像。均为文本行标注。它包含多语言,多方向,长文本。因为它训练集非常小,我们遵循[3],[37],[59]工作方式,包含HUST-TR400的400张图像共同作为训练数据。

RCTW-17 是一个图像读中文的比赛。它提供了一个大尺度的数据集,包含12000张图像,其中8346为训练,剩下的为测试集。每张图像都是文本行级 四边形和文本转录进行标注。

4.1.3 预训练和联合训练数据集

SythText 是一个大尺寸合成数据集,包括800K合成图像。里面有大量的多方向文本,均为旋转文本框的单词级标注和字符集标注。按照[34],[37],[59]工作,该数据集用于PAN++的预训练或者联合训练模型。

COCO-Text 包括63686张图象,和3个版本的标注(V1.1,V1.4,V2.0)。在V2.0中,有239506个标注文本行,这些文本行用单词级多边形和转写标记。该数据集通常用于预先训练或在以前的文本观察者中联合训练[16],[22]。

ICDAR 2017 MLT (IC17-MLT) 是一个多语言场景文本数据集。它由7200个训练图像、1800个验证图像和9000个测试图像组成。数据集由九种语言的自然场景图像组成,这些图像用单词级的四边形和转录标注。在[16],[22]之后,使用训练集中的英语样本来预训练或联合训练PAN++文本识别模型。

4.2 曲型文本数据集的实验

4.2.1 实验设置

为了测试PAN++在任意形态文本上的表现,我们在Total-Text和CTW1500上进行了实验,并将其与以前的最先进的方法进行了比较。在这些实验中,使用在ImageNet 上预先训练的ResNet 作为我们方法的主干网络。此外,将实例向量的维数设置为4,OHEM的正负比为3,文本核的收缩率r设置为0.7,PA的距离阈值d设置为3。

按照常见的做法[3]、[4]、[8]、[22],我们在训练过程中忽略标记为“不关心”的模糊文本区域,并在训练图像上应用随机缩放、随机水平翻转、随机旋转和随机裁剪。所有模型都是通过使用ADAM [66]优化器优化的,批处理大小为4个图形处理器上的16个。初始学习速率设置为1×103。与[67]相似,我们使用“多元”学习速率策略,其中初始速率乘以 ( 1 − i t e r m a x i t e r ) p o w e r (1- \frac {iter} {max iter})^{power} (1maxiteriter)power ,并且在所有实验中功率设置为0.9。在测试阶段,我们将输入图像调整到不同的比例,并报告文本检测和端到端文本识别任务的性能。除非另有说明,所有结果都是在V100 GPU和2.20GHz CPU上以1的批量大小在单线程中测试的。

在文本检测任务中,为了进行公平的比较,我们使用以下两种广泛使用的策略来训练PAN++(没有识别头):
1)遵循[3]、[17]、[68]来训练没有外部文本数据集的模型;
2)遵循[4],[17],[34]来微调在外部文本数据集上预先训练的模型(例如,合成文本和IC17-MLT)。
在第一个策略中,我们为36K迭代训练我们的方法。在第二个例子中,我们首先在外部文本数据集上对模型进行50K次迭代的预训练,然后对预训练的模型进行36K次迭代的微调。

在文本点选任务中,前人工作[7]、[8]、[16]、[22]中使用的训练策略也可以分为两类:
1)在外部文本数据集上预训练的微调模型,
2)在多个文本数据集上联合训练模型。为了公平比较,我们分别使用这两种策略来训练我们的端到端文本识别模型。具体来说,当使用微调策略时,我们首先在SynthText、COCO-Text和IC17-MLT数据集的训练图像上对模型进行150K迭代的预训练,然后在TotalText或CTW1500上对预训练模型进行7K迭代的微调。对于联合训练策略,我们在联合数据集上为150千次迭代训练我们的模型,该数据集包括SynthText、COCOText、IC17-MLT、Total-Text和IC15中的所有训练样本。

4.2.2 曲型文本检测结果

如表1所示,在没有对外部文本数据集进行预训练的情况下,短边为320像素的PAN++在CTW1500上的F-Measure为79.5%,超过了大多数同类方法,包括在SynthText上预训练的一些方法(如TextSnake[37])(79.5%对78.4%)。而且我们的推理速度比TextSnake快8倍,比EAST 快4倍。值得注意的是,当微调在SynthText上预先训练的模型时,PAN++ (S: 640)实现了最佳F-Measure=84%,超越所有对手,同时仍保持最快的推理速度(36 FPS)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x6EORtlS-1624501204090)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4cadbe57-898a-4ea0-b704-c98087ee5a73/QQ20210524101914.png)]

表1 Total-Text和CTW1500上的检测结果。“L”表示长边固定,“S”表示短边固定。PAN++在1080 Ti上测试推理速度。

总文本数据集上也有类似的结果。当短边为320像素时,我们的方法的推理速度达到84.9 FPS,比以前的方法至少快6倍,而F-measure仍然很有竞争力(80.0%)。我们方法的最佳f检验是85.3%,超过当前最先进的方法1.7个百分点。同时,它的速度接近40 FPS,仍然比第二快的TextSnake快3倍[37]。

这些结果证明了所提出的PAN++(仅检测)在任意形状的文本检测中在准确性和速度方面的优越性。我们在图11 (a)(b)中呈现了一些定性的弯曲文本检测结果,这表明PAN++的检测组件可以优雅地定位具有复杂形状的文本行。

4.2.3 曲型文本探查结果

表2报告了全文数据集中的端到端文本探查位结果。与以前最快的ABCNet [22]相比,我们的短边为640像素的方法运行速度快1.3倍,而我们的端到端文本识别F-measure高2.2个百分点(66.4%对64.2%)。当采用更大的输入规模或联合训练策略时,我们的方法的性能可以进一步提高。在低分辨率输入(短边为512像素)下,我们的方法推理速度达到29.2,比以前的方法至少快11 FPS。同时,它的端到端文本识别F-measure为64.9%,高于大多数同行。值得注意的是,PAN++实现了68.6%的最佳端到端文本定位F-measure,这比第二好的方法(秦等人[16])好得多,并且我们的速度快4倍(21.1 FPS对4.8 FPS)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZVM0x330-1624501204091)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7f5d59ef-8d22-405b-90dc-81fc79c693a7/QQ20210524101914.png)]

表2 Total-Text上的端到端文本检测识别结果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gmqJ76Bo-1624501204092)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5640c887-4e3b-4fe6-9a7f-40ac442178b2/QQ20210524101914.png)]

5 结论

本工作中,我们大大地扩大了文本检测识别的核表示,相比于我们会议中首次提出的概念。我们也彻底地探讨了实时任意形态文本识别的可行性。尤其,为了进一步加强这种表示,我们开发了一个端到端任意形状文本定位的有效框架,通过精心设计一系列轻量级模块,加快了文本识别过程的所有部分,包括1)具有堆叠FPEMs的功能增强网络,2)具有PA的检测头,以及3)具有Masked RoI的识别头。

我们证明了PAN++在文本检测和端到端任务的性能。实验结果证明,与以往的一些先进方法相比,我们的方法在准确性和推理速度上具有优势。希望PAN++可以成为真实世界文本理解应用的基石。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值