Abstract
场景文本的检测和识别已受到越来越多的研究关注。现有方法可以大致分为两类:基于字符的和基于分割的。这些方法对于字符注释来说是昂贵的,或者需要维护复杂的管线,这通常不适用于实时应用。在这里,我们通过提出自适应贝塞尔曲线网络(ABCNet)来解决该问题。
我们的贡献有三点:
1)首先,我们通过参数化的Bezier曲线自适应地拟合了定向或弯曲的文本。
2)我们设计了一种新颖的BezierAlign层,用于提取任意形状的文本实例的卷积特征,与以前的方法相比,显著提高了精度。
3)与标准边界框检测相比,我们的Bezier曲线检测引入了可忽略的计算开销,从而使我们的方法在效率和准确性上均具有优势。
针对定向或弯曲基准数据集(即Total-Text和CTW1500)上的实验表明,ABCNet达到了最先进的精度,同时大大提高了速度。特别是在Total-Text上,我们的实时版本比最新的最新方法快10倍以上,并且具有可识别的准确度。
代码可在https://git.io/AdelaiDet上获得。
1. Introduction
场景文本检测和识别由于在计算机视觉中的大量应用而受到越来越多的关注。尽管最近已取得了巨大的进步[10,42,28,36,27,43,45,41,46,14],但由于其大小的多样性,长宽比,字体样式,透视图失真和形状, 在野外检测和识别文本仍未解决。尽管深度学习的出现极大地改善了场景文本识别任务的性能,但是在现实应用中的当前方法中仍然存在相当大的差距,尤其是在效率方面。
最近,许多端到端方法[31,37,34,24,44,21]显著提高了定向或弯曲场景文本点样的性能。但是,这些方法要么使用维护复杂pipline的基于分割的方法,要么需要大量昂贵的字符级注释。此外,几乎所有这些方法的推理速度都很慢,从而阻碍了实时应用程序的部署。因此,我们的动机是设计一个简单而有效的端到端框架,以在图像中发现定向或弯曲的场景文本[4,27],与现有最新的技术相比,它可以确保快速的推理时间,同时实现更好的性能。
为了实现此目标,我们提出了自适应Bezier曲线网络(ABCNet),这是一种端到端的可训练框架,用于定向或弯曲场景文本识别。具有Bezier曲线自适应功能的ABCNet使定向或弯曲场景文本检测成为可能,与标准矩形边界框检测相比,引入的计算开销可忽略不计。另外,我们设计了一种新颖的特征对齐层-BezierAlign-来精确计算弯曲形状的文本实例的卷积特征,从而可以在不引入大量计算成本的情况下实现高识别精度。首次使用参数化的Bezier曲线表示有向文本或弯曲文本,结果证明了该方法的有效性。示例结果的示例如图1所示。
请注意,以前的方法(例如TextAlign [11]和FOTS [25])可以视为ABCNet的一种特殊情况,因为四边形边界框可以看作是带有4个直线边界最简单的定向或弯曲边界框 。此外,ABCNet还可以避免诸如2D注意力[20]之类的复杂转换,从而使识别分支的设计变得相当简单。
我们总结了以下主要贡献。
• 为了准确定位图像中的定向和弯曲场景文本,这是第一次,我们使用贝塞尔曲线介绍了一种新的简洁的弯曲场景文本参数表示。与标准的边界框表示相比,它引入了可忽略的计算开销。
• 我们提出了一种采样方法,也称为Bezier-Align,用于精确的特征对齐,因此识别分支可以自然地连接到整个结构。通过共享主干特征,可以将识别分支设计为轻量级结构。
• 我们方法的简单性使其可以实时推理。 ABCNet在两个具有挑战性的数据集Total-Text和CTW1500上实现了最先进的性能,证明了其在有效性和效率上的优势。
1.1. Related Work
场景文本识别需要同时检测和识别文本,而不仅仅是一项任务。最近,基于深度学习的方法的出现大大提高了场景文本识别的性能。检测和识别的性能都得到了显著提高。我们将基于深度学习的几种代表性场景文本发现方法归纳为以下两类。图2显示了典型作品的概述。
规则的端到端场景文本识别
Li等 [19]提出了第一种基于深度学习的端到端可训练场景文本识别方法。该方法成功地使用了RoI Pooling [35]通过两个阶段的框架来联合检测和识别特征,但是它只能发现水平和聚焦的文本。它的改进版本[20]大大提高了性能,但是速度受到限制。He等[11]和Liu等[25]采用anchor-free 机制,以提高训练和推理速度。他们使用类似的采样策略,即分别使用Text-Align-Sampling和RoI-Rotate从四边形检测结果中提取特征。请注意,这两种方法均不能识别定向或弯曲场景的文本。
定向或弯曲的端到端场景文本识别
若要检测定向或弯曲的场景文本,Liao等人[31]提出了一个Mask TextSpotter,它巧妙地完善了Mask R-CNN,并使用字符级监督来同时检测和识别字符和实例掩码。该方法显著提高了识别定向或弯曲场景文本的性能。但是,字符级ground truth是昂贵的,并且在实践中使用免费的合成数据很难为真实数据生成字符级ground truth。它的改进版本[21]大大减轻了对字符级ground truth的依赖。该方法依赖于区域提议网络,这在一定程度上限制了速度。 Sun等[37]提出了TextNet,该文本网络预先产生四边形检测边界框,然后使用区域提议网络来提供检测特征以进行识别。尽管该方法可以从四边形检测中直接识别出定向文本或弯曲文本,但其性能仍然有限。
最近 Qin等人[34]提出使用RoI Masking将焦点放在定向或弯曲的文本区域上。但是,结果很容易受到异常像素的影响。另外,分割分支增加了计算负担;拟合多边形过程也引入了额外的时间消耗;并且分组结果通常呈锯齿状且不平滑。**文献[24]中的工作是第一种单阶段的定向或弯曲场景文本发现方法,需要字符级的ground truth数据进行训练。 **[44]的作者提出了一种新颖的采样方法RoISlide,它使用了文本实例的预测段中的融合特征,因此对长方向或弯曲的文本具有鲁棒性。
2. Adaptive Bezier Curve Network (ABCNet)
ABCNet是端到端的可训练框架,用于识别定向或弯曲的场景文本。 直观的pipline如图3所示。 受[49,38,12]的启发,我们采用single-shot,anchor-free卷积神经网络作为检测框架。 移除anchor boxes大大简化了对我们的检测任务。 在这里,检测是在检测头的输出特征图上进行密集预测的,检测头由4个stride为1,padding为1和3×3的卷集核堆叠卷积构成。 接下来,我们将提出的ABCNet的关键部分分为两个部分:
1)贝塞尔曲线检测; 2)Bezier-Alignand识别分支。
2.1. Bezier Curve Detection
与基于分割的方法相比[41,46,1,39,47,29],基于回归的方法是定向或弯曲文本检测的更直接解决方案,例如[27,43]。 但是,以前基于回归的方法需要复杂的预测才能适应文本边界,这在实践中对于各种文本形状不是非常有效和健壮。
为了简化定向或弯曲场景文本检测,在回归方法之后,我们发现Bezier 曲线是曲线表示的最基本概念,适用于曲线文本的参数化。 贝塞尔曲线代表以伯恩斯坦多项式(BernsteinPolynomials)[30]为基础的参数曲线c(t)。 定义如公式(1)所示。
图4:三次Bezier曲线,bi代表控制点,绿线形成控制多边形,黑色曲线为三次Bezier曲线。 请注意,只有两个端点b1和b4时,贝塞尔曲线退化为一条直线。
基于三次贝塞尔曲线,我们可以将定向或弯曲场景文本检测简化为总共具有八个控制点的边界框回归。 请注意,具有四个控制点(四个顶点)的直线文本是定向或弯曲场景文本的典型情况。 为了保持一致性,我们在每个长边的三边形点上插入了另外两个控制点。
要了解控制点的坐标,我们首先生成第2.1.1节中描述的Bezier曲线的ground truths,并采用与[26]中类似的回归方法回归目标。 对于每个文本实例,我们使用
2.1.1 Bezier Ground Truth Generation
在本节中,我们简要介绍如何基于原始注释生成贝塞尔曲线的ground truth。定向或弯曲数据集,例如Total-text [4]和CTW1500 [27],对文本区域使用多边形注释 。 给定曲线边界的注释点pi,其中pi表示注释点,主要目标是在等式(1)中获得三次贝塞尔曲线c(t)的最佳参数。 为此,我们可以简单地应用标准最小二乘法,如公式(4)所示:
此处m表示曲线边界的注释点数。 对于Total-Text和CTW1500,m分别为5和7, t使用累积长度与折线周长之比计算得出。 根据等式(1)和等式(4),我们将原始折线注释转换为参数化的贝塞尔曲线。 请注意,我们直接将第一个注释点和最后一个注释点分别用作第一个(b0)和最后一个(b4)控制点。图5显示了可视化比较,这表明生成结果在视觉上甚至可以比原始的ground truth更好。 此外,基于结构化的Bezier曲线边界框,我们可以轻松地使用第2.2节中描述的BezierAlign将弯曲文本扭曲为水平格式而不会出现明显变形。Bezier曲线生成结果的更多示例如图6所示。 我们方法的简单性允许在实践中产生不同种类的文本。
2.1.2 Bezier Curve Synthetic Dataset
如表2所示,对于端到端的场景文本识别方法,总是需要大量的免费合成数据。但是,现有的800k SynText数据集[7]仅为大多数直文本提供四边形边界框。为了使定向的或弯曲的场景文本丰富多样,我们付出了一些努力,使用VGG合成方法合成了150k合成数据集(94,723张图像包含大量的直文本,而54,327张图像包含了大部分弯曲的文本)[7]。具体来说,我们从COCO-Text [40]中过滤掉40k个无文本的背景图像,然后使用[33]和[18]准备每个背景图像的分割蒙版和场景深度,以用于后续的文本渲染。为了扩大合成文本的形状多样性,我们通过使用各种艺术字体和语料合成场景文本来修改VGG合成方法,并为所有文本实例生成多边形注释。然后,通过第2.1.1节中所述的生成方法,将注释用于生成Bezier曲线ground truth。我们的合成数据示例如图8所示。
2.2. Bezier Align
为了实现端到端训练,大多数以前的方法都采用各种采样(特征对齐)方法来连接识别分支。通常,采样方法代表网络内区域裁剪过程。换句话说,给定一个特征图和兴趣区域(RoI),使用采样方法选择RoI的特征并有效地输出固定大小的特征图。但是,以前基于非分割方法的采样方法,例如RoI Pooling [19],RoI-Rotate [25],Text-Align-Sampling [11]或RoI Transform [37],无法正确对齐定向或弯曲文本的特征(RoISlide [44]众多预测段)。通过充分利用紧凑型Bezier曲线边界框的参数化性质,我们提出了BezierAlign用于特征采样。 BezierAlign是RoIAlign [8]的扩展。与RoIAlign不同,BezierAlign的采样网格形状不是矩形。取而代之的是,定向或弯曲网格的每一列都与文本的Bezier曲线边界正交。采样点分别具有等距的间隔宽度和高度,它们相对于坐标是双线性插值的。
正式给出输入特征图和Bezier曲线控制点,我们同时使用大小(hout * wout)处理矩形输出特征图的所有输出像素。以位置(giw,gih)(来自输出特征图)的像素gi为例,我们通过公式(5)计算:
表1:识别分支的结构,它是CRNN的简化版本[36]。 对于所有卷积层,填充大小均限制为1.n表示批处理大小.crees表示通道大小.handw表示输出要素图的高度和宽度,nclass表示预测类的数量,在本文中设置为97,包括上层 以及小写英文字符,数字,符号,代表所有其他符号的一个类别以及最后一个类别的“ EOF”。
识别分支:受益于共享的骨干特征和BezierAlign,我们设计了一个轻量级的识别分支,如表1所示,以实现更快的执行速度。 它由6个卷积层,1个双向LSTM [13]层和1个完全连接的层组成。 基于输出分类得分,我们使用经典的CTC损失[6]进行文本字符串(GT)对齐。 请注意,在训练过程中,我们直接使用生成的Bezier曲线GT提取RoI特征。 因此,检测分支不会影响识别分支。 在推理阶段,RoI区域被第2.1节中描述的检测Bezier曲线代替。 实验部分3中的消融研究表明,提出的BezierAlign可以显著提高识别性能。
3. Experiments
我们在最近引入的两个定向或弯曲的场景文本基准上评估了我们的方法,该基准是Total-Text [3]和CTW1500 [27],它们也包含大量的直行文本。 我们还对Total-Text进行了消融研究,以验证我们提出的方法的有效性。
3.1. Implemented details
本文的主干遵循与大多数以前的论文相同的设置,即ResNet-50 [9]和功能金字塔网络(FPN)[23]。对于检测分支,我们在5个特征图上使用RoIAlign,其输入图像分辨率分别为1 / 8、1 / 16、1 / 32、1 / 64和1/128,而对于识别分支,对三个特征进行BezierAlign映射1 / 4、1 / 8和1/16大小。预训练的数据是从可公开获得的基于英语单词水平的数据集中收集的,包括在第2.1.2节中描述的150k合成数据,从原始COCO-Text [40]过滤的15k图像和7k ICDAR-MLT数据[32]。然后在目标数据集的训练集上对模型进行微调。此外,我们还采用了数据扩展策略,例如随机尺度训练,其中,从560到800中随机选择短号,而长号则小于1333;和随机裁切,我们确保裁切后的尺寸大于原始裁切尺寸的一半,并且不剪切任何文本(对于某些难以满足条件的特殊情况,我们不应用随机裁切)。
我们使用4训练模型Tesla V100 GPU,图像批处理大小为32。最大迭代为150K;初始学习率为0.01,在70Kthiteration时减少为0.001,在120Kthiteration时减少为0.0001。整个训练过程大约需要3天。
3.2. Experimental results on Total-Text
数据集。Total-text数据集[3]是2017年提出的最重要的定向或弯曲的场景文本基准之一,它是从各种场景中收集的,包括类似文本的场景复杂性和低对比度背景。它包含1,555张图像,其中1,255张用于训练,300张用于测试。为了类似于现实情况,此数据集的大多数图像都包含大量规则的文本,同时确保每个图像至少具有一个弯曲文本。文本实例使用基于单词级别的多边形进行注释。它的扩展版本[4]通过在文本识别序列之后用固定的十个点为每个文本实例进行注释来改进其训练集的注释。该数据集仅包含英文文本。为了评估端到端的结果,我们采用与以前的方法相同的度量标准,即使用F度量来测量词的准确性。
消融研究:BezierAlign。
要评估所提出的组件的有效性,我们在此数据集上进行消融研究。我们首先进行敏感性分析,分析采样点的数量如何影响端到端结果,如表4所示。从结果可以看出,采样点的数量会显著影响最终性能和效率。我们发现(7,32)在F-measure和FPS之间达到了最佳折衷,在以下实验中将其用作最终设置。我们通过将其与图7中所示的先前采样方法进行比较来进一步评估BezierAlign。表3中显示的结果表明,BezierAlign可以显著改善端到端的结果。定性示例如图9所示。
消融研究:贝塞尔曲线检测。
另一个重要组成部分是贝塞尔曲线检测,它可以进行定向或弯曲场景文本检测。因此,我们还进行实验以评估贝塞尔曲线检测的时间消耗。表5中的结果表明,贝塞尔曲线检测与标准边界框检测相比没有引入额外的计算。
与最新技术进行了比较。
我们将我们的方法与以前的方法进行了进一步的比较。从表2中可以看出,我们的单尺度结果(短尺寸为800)可以在实现实时推理速度的同时达到有竞争力的性能,从而在速度和字精度之间取得更好的折衷。通过多尺度推理,ABCNet达到了最先进的性能,特别是在运行时,其性能大大优于所有以前的方法。值得一提的是,我们的更快版本可以比以前的最佳方法[21]快11倍。
定性结果
ABCNet的一些定性结果如图10所示。 结果表明,我们的方法可以准确地检测和识别大多数定向或弯曲文本。 此外,我们的方法还可以处理具有直角四边形紧凑边界框的纯文本并正确识别结果。 图中还显示了一些错误,这主要是由于错误地识别了其中一个字符引起的。
3.3. Experimental Results on CTW1500
Dataset
CTW1500 [27]是2017年提出的另一个重要的面向定向或弯曲场景的文本基准。与Total-Text相比,此数据集同时包含英语和中文文本。另外,注释基于文本行级别,并且还包括一些类似于文档的文本,即,许多小文本可能会堆叠在一起。CTW1500包含1000张训练图像和500张测试图像。
实验
由于该数据集中中文文本的占用非常小,因此我们直接将所有中文文本视为训练期间的“看不见”类,即第96类。请注意,在我们的实现中,最后一个类(即第97类)为“EOF”。我们遵循与[44]相同的评估方法。表6中报告了实验结果,这些结果表明,就端到端场景文本识别而言,ABCNet可以大大超越以前的最新方法。该数据集的示例结果如图11所示。从图中可以看出,某些长文本行实例包含许多单词,这使得完全匹配的单词准确性非常困难。换句话说,错误地识别一个字符将导致整个文本的分数为零。
4. Conclusion
我们提出了ABCNet,这是一种实时的端到端方法,该方法使用Bezier曲线进行定向或弯曲的场景文本识别。 通过使用参数化的Bezier曲线重新定向或弯曲的场景文本,ABCNet可以使用Bezier曲线检测定向或弯曲的场景文本,与标准的边界框检测相比,引入的计算成本可忽略不计。 使用这种常规的Bezier曲线边界框,我们可以自然地通过新的BezierAlign层连接轻量识别分支。
此外,通过使用我们的Bezier曲线合成数据集和公开可用的数据,可以在两个定向或弯曲场景文本基准上进行实验(总计 -Text和CTW1500)证明了我们的ABCNet可以达到最先进的性能,这也比以前的方法要快得多。