Abstract
场景文本检测器由文本检测和识别模块组成。已经进行了许多研究,以将这些模块统一为端到端的可训练模型,以实现更好的性能。典型的结构将检测和识别模块放置在单独的分支中,并且RoI pooling通常用于让分支共享视觉特征。然而,当采用识别器时,仍然有机会在模块之间建立更互补的连接,该识别器使用基于注意力的解码器和检测器来表示字符区域的空间信息。这是可能的,因为两个模块共享一个共同的子任务,该任务将查找字符区域的位置。基于这些见解,我们构建了紧密耦合的单管道模型。通过使用检测输出作为识别器输入,并在检测阶段传播识别损失来形成此结构。字符得分图的使用有助于识别器更好地关注字符中心点,并且识别损失传播到检测器模块会增强字符区域的定位。此外,增强的共享阶段允许对任意形状的文本区域进行特征校正和边界定位。大量实验证明了公开提供的直线和曲线基准数据集的最新性能。
Introduction
场景文本定位,包括文本检测和识别,由于在即时翻译,图像检索和场景解析中的各种应用,最近引起了广泛的关注。尽管现有的文本检测器和识别器在水平文本上很有效,但是在场景图像中发现弯曲的文本实例时,仍然是一个挑战。
为了在图像中发现弯曲的文本,一种经典的方法是将现有的检测和识别模型进行级联,以管理每一侧的文本实例。检测器[32、31、2]尝试通过应用复杂的后处理技术来捕获弯曲文本的几何属性,而识别器则应用多向编码[6]或采用修正模块[37、46、11]来增强弯曲文本上识别器的准确性。
随着深度学习的发展,已经进行了将检测器和识别器组合成可共同训练的端到端网络的研究[14,29]。拥有统一的模型不仅可以提高模型的尺寸效率和速度,还可以帮助模型学习共享功能,从而提高整体性能。为了从该属性中受益,还尝试使用端到端模型[32、34、10、44]处理弯曲文本实例。但是,大多数现有的工作仅采用RoI pooling 在检测和识别分支之间共享底层特征。在训练阶段,不是训练整个网络,而是使用检测和识别损失来训练共享特征层。
如图1所示,我们提出了一种新颖的端到端字符区域注意文本定位模型,称为CRAFTS。而不是将检测和识别模块隔离在两个单独的分支中,我们通过在模块之间建立互补连接来建立一个单一的pipline。我们观察到,使用基于注意力的解码器的识别器[1]和封装字符空间信息的检测器[2]共享一个公用的子任务,该子任务用于定位字符区域。通过将两个模块紧密集成,检测级的输出可帮助识别器更好地识别字符中心点,并且从识别器传播到检测器级的损失会增强字符区域的定位。而且,网络能够使在公共子任务中使用的特征表示的质量最大化。据我们所知,这是构建紧密耦合损失的首个端到端工作。
我们的贡献总结如下:
(1)我们提出了一种可以检测和识别任意形状的文本的端到端网络。
(2)通过利用来自修正和识别模块上检测器的空间字符信息,我们在模块之间构造互补关系。
(3)通过在整个网络的所有特征中传播识别损失来建立单个pipline。
(4)我们在包含大量水平,弯曲和多语言文本的IC13,IC15,IC19-MLT和TotalText [20、19、33、7]数据集中实现了最先进的性能。
Related Work
文本检测和识别方法
检测网络使用基于回归的[16、24、25、48]或基于分割的[9、31、43、45]方法来生成文本边界框。诸如[17,26,47]之类的一些最新方法将Mask-RCNN [13]作为基础网络,并通过采用多任务学习从回归和分割方法中获得了优势。就文本检测的单元而言,所有方法还可以依赖单词级别或字符级别[16,2]预测的使用进行子分类。
文本识别器通常采用基于CNN的特征提取器和基于RNN的序列生成器,并按其序列生成器进行分类。连接主义的时间分类(CTC)[35]和基于注意力的顺序解码器[21、36]。检测模型提供了文本区域的信息,但是对于识别器而言,要提取任意形状的文本中的有用信息仍然是一个挑战。为了帮助识别网络处理不规则文本,一些研究[36、28、37]利用空间变换器网络(STN)[18]。而且,论文[11,46]通过迭代执行修正方法进一步扩展了STN的使用。这些研究表明,递归运行STN有助于识别器提取极端弯曲文本中的有用特征。在[27]中,提出了循环RoIWarp层, 在识别单个字符之前对其进行裁剪。这项工作证明,找到字符区域的任务与基于注意力的解码器中使用的注意力机制密切相关。
构造文本定位模型的一种方法是依次放置检测和识别网络。众所周知的两阶段结构将TextBox ++ [24]检测器和CRNN [35]识别器耦合在一起。简单来说,该方法取得了良好的效果。
端到端的使用基于RNN的识别器
EAA [14]和FOTS [29]是基于EAST检测器[49]的端到端模型。这两个网络之间的区别在于识别器。 FOTS模型使用CTC解码器[35],而EAA模型使用注意力解码器[36]。两项工作都实现了仿射变换层来合并共享功能。提出的仿射变换在水平文本上效果很好,但在处理任意形状的文本时显示出局限性。 TextNet [42]提出了一种在特征池化层中具有透视RoI变换的空间感知文本识别器, 网络保留RNN层以识别2D特征图中的文本序列,但是由于缺乏表现力的四边形,在检测弯曲文本时,网络仍然显示出局限性。
Qin等[34]提出了一种基于Mask-RCNN [13]的端到端网络。给定box proposals,从共享层合并特征,并使用ROI遮罩层过滤掉背景杂波。提出的方法通过确保注意力仅在文本区域中来提高其性能。Busta等提出了Deep TextSpotter [3]网络,并在E2E-MLT [4]中扩展了他们的工作。该网络由基于FPN的检测器和基于CTC的识别器组成。该模型以端到端的方式预测多种语言。
端到端的使用基于CNN的识别器
在处理任意形状的文本时,大多数基于CNN的模型在识别字符级文本都具有优势。 MaskTextSpotter [32]是使用分割方法识别文本的模型。尽管它在检测和识别单个字符方面具有优势,但由于通常不会在公共数据集中提供字符级别的注释,因此很难训练网络。 CharNet [44]是另一种基于分割的方法,可以进行字符级预测。该模型以弱监督的方式进行训练,以克服缺乏字符级注释的问题。在训练期间,该方法执行迭代字符检测以创建伪ground-truths。
尽管基于分割的识别器已经取得了巨大的成功,但是当目标字符的数量增加时,该方法会受到影响。随着字符集数量的增加,基于分割的模型需要更多的输出通道,这增加了内存需求。journal版本的MaskTextSpotter [23]扩展了字符集以处理多种语言,但是作者添加了基于RNN的解码器,而不是使用他们最初提出的基于CNN的识别器。**基于分割的识别器的另一个限制是识别分支中缺少上下文信息。**由于缺少像RNN这样的顺序建模,在嘈杂的图像下,模型的准确性下降。
TextDragon [10]是另一种基于分割的方法,用于定位和识别文本实例。但是,**不能保证预测的字符段会覆盖单个字符区域。为了解决该问题,该模型合并了CTC来删除重叠字符。**该网络显示出良好的检测性能,但是由于缺少顺序建模而在识别器中显示出局限性。
Methodology
Overviewer
本文提出的CRAFTS网络(Character Region Attention For Text Spotting)可分为三个阶段; 检测阶段,共享阶段和识别阶段。 网络的详细管道如图2所示。检测阶段获取输入图像并定位定向的文本框。共享阶段合并骨干网络高层特征和检测器输出,然后,使用校正模块对合并的要素进行校正,并将它们串联在一起以形成character attended feature。 在识别阶段,基于注意力的解码器会使用character attended feature预测文本标签。 最后,可以选择使用一种简单的后处理技术来实现更好的可视化。
Detection Stage
由于CRAFT检测器[2]具有表示字符区域语义信息的能力,因此被选作基础网络。 CRAFT网络的输出表示字符区域以及它们之间的连接的中心概率。由于两个模块的目标是定位字符的中心位置,我们设想此字符居中信息可用于支持识别器中的注意模块。在这项工作中,我们对原始的CRAFT模型进行了三处更改;骨干替换,连接表示和方向估计。
骨干置换
最近的研究表明,使用ResNet50可以捕获检测器和识别器定义的明确的特征表示[30,1]。因此,我们将骨干网络由VGG-16 [40]换成ResNet50 [15]。
连接表示
垂直文本在拉丁文本中并不常见,但是在东亚语言(例如中文,日语和韩语)中经常出现。在这项工作中,使用二进制中心线连接顺序字符区域。进行此改变的原因是,在垂直文本上使用原始的亲和力图经常会产生不适定的透视变换,从而生成无效的框坐标。为了生成 ground truth连接图,在相邻字符之间绘制一条粗细为t的线段。这里,t = max((d 1 + d 2)/ 2 *α,1),其中d 1和d 2是相邻字符盒的对角线长度,α是缩放系数。使用该方程式可使中心线的宽度与字符的大小成比例。我们在实现中将α设置为0.1。
方向估计
重要的是获取文本框的正确方向,因为识别阶段需要定义明确的框坐标才能正确识别文本。为此,我们在检测阶段增加了两个通道的输出,通道用于预测字符沿x轴和y轴的角度。为了生成定向图的 ground truth.
Sharing Stage
共享阶段包括两个模块:文本纠正模块和字符区域注意力( character region attention: CRA)模块。为了纠正任意形状的文本区域,使用了薄板样条(thin-plate spline:TPS)[37]转换。受[46]的启发,我们的纠正模块结合了迭代式TPS,以更好地表示文本区域。通过有吸引力地更新控制点,可以改善图像中文本的弯曲几何形状。通过实证研究,我们发现三个TPS迭代足以校正。
典型的TPS模块将单词图像作为输入,但是我们提供了字符区域图和连接图,因为它们封装了文本区域的几何信息。我们使用二十个控制点来紧密覆盖弯曲的文本区域。为了将这些控制点用作检测结果,将它们转换为原始输入图像坐标。我们可以选择执行2D多项式拟合以平滑边界多边形。迭代TPS和最终平滑多边形输出的示例如图4所示。
**CRA模块是紧密结合检测和识别模块的关键组件。**通过简单地将校正的字符得分图与特征表示连接起来,该模型建立了以下优点:
在检测器和识别器之间建立连接可以使识别损失传播到整个检测阶段,从而提高了字符得分图的质量。此外,将字符区域图附加到特征有助于识别者更好地关注字符区域。在实验部分将进一步讨论使用该模块的消融研究。
Recognition Stage
识别阶段的模块是根据[1]中报告的结果形成的。 识别阶段包含三个组件:特征提取,序列建模和预测。 由于特征提取模块采用高级语义特征作为输入,因此它比单独的识别器更轻便。
表1中显示了特征提取模块的详细架构。提取特征后,将双向LSTM应用于序列建模,然后基于注意力的解码器进行最终文本预测。
在每个时间步,基于注意力的识别器都会通过屏蔽对特征的注意力输出来解码文本信息。 尽管注意力模块在大多数情况下都能很好地工作,但是当注意点未对齐或消失时,它无法预测字符[5,14]。 图5显示了使用CRA模块的效果。 适当放置的注意点可以进行可靠的文本预测。
用于训练的最终损失L由检测损失和识别损失组成,取L = Ldet + Lreg。 识别损失的总体流程如图6所示。损失在识别阶段流经权重,并通过字符区域注意模块传播到检测阶段。
另一方面,检测损失被用作中间损失,因此使用检测和识别损失来更新检测阶段之前的权重。
Experiment
Datasets
English datasetsIC13 [20]数据集由高分辨率图像组成,229张图像用于训练和233张图像用于测试。 矩形框用于注释单词级文本实例。 IC15 [20]包含1000个训练图像和500个测试图像。 四边形框用于注释单词级文本实例。 TotalText [7]
拥有1255个训练图像和300张测试图像。与IC13和IC15数据集不同,它包含弯曲的文本实例,并使用多边形点进行注释。
Multi-language datasetIC19 [33]数据集包含10,000个训练和10,000个测试图像。 数据集包含7种不同语言的文本,并使用四边形点进行注释。
Training strategy
我们联合训练CRAFTS模型中的检测器和识别器。为了训练检测阶段,我们遵循[2]中描述的弱监督训练方法。通过在每个图像中进行批随机采样的裁剪单词特征来计算识别损失。每个图像的最大单词数设置为16,以防止出现内存不足错误。检测器中的数据增强应用了诸如裁剪,旋转和颜色变化之类的技术。对于识别器来说,ground truth框的角点在框的较短长度的0%到10%之间的范围内受到干扰。
该模型首先在SynthText数据集[12]上进行了50k迭代训练,然后我们进一步在目标数据集上训练了网络。使用Adam优化器,并应用在线困难样本挖掘On-line Hard Negative Mining(OHEM) [39]来在检测损失中强制使用正负像素的1:3比例。微调模型时,SynthText数据集以1:5的比例混合。我们采用94个字符来覆盖字母,数字和特殊字符,对于多语言数据集则采用4267个字符。
Experimental Results
水平数据集(IC13,IC15)
为了达到IC13基准,我们采用在SynthText数据集上训练的模型,并在IC13和IC19数据集进行微调。在;推理过程中,我们将输入的较长边调整为1280。
结果表明,与以前的最新技术相比,性能显着提高。
然后在IC15数据集上对在IC13数据集上训练的模型进行微调。在评估过程中,模型的输入大小设置为2560x1440。请注意,我们在没有通用词汇集的情况下执行通用评估。表2中列出了IC13和IC15数据集的定量结果。
我们的方法在通用和弱上下文的端到端任务中都超过了以前的方法,并且在其他任务中显示了可比较的结果。因为在实际方案中不提供词汇集,所以通用性能很有意义。**请注意,我们在IC15数据集上获得的检测分数略低,并且在强上下文环境的结果中也观察到了较低的性能。较低的检测性能主要是由于粒度差异而获得的,**将在后面的部分中进一步讨论。
弯曲数据集(TotalText)
从IC13数据集上训练的模型中,我们进一步在TotalText数据集上训练模型。在推理过程中,我们将输入的较长边调整为1920,而修正模块的控制点
用于检测器评估。定性结果如图7所示。
使用热图来说明字符区域图和连接图,并且在HSV颜色空间中可视化了加权的像素角度值。
如图所示,网络成功定位了多边形区域并识别了弯曲文本区域中的字符。左上角的两个图显示成功识别了完全旋转和高度弯曲的文本实例。
表3中列出了TotalText数据集上的定量结果。DetEval [7]评估检测器的性能,改进的IC15评估方案可测量端到端性能。我们的方法大大优于以前报道的方法。请注意,即使没有词汇集,端到端的结果也比h均值明显超出8.0%。
多语言数据集(IC19)
使用IC19-MLT数据集对多种语言进行评估。识别器预测层中的输出通道已扩展到4267以处理阿拉伯语字符,拉丁文,中文,日文,韩文,孟加拉国和北印度文。但是,数据集中字符的出现不是均匀分布的。在训练集中的4267个字符中,数据集中一次出现1017个字符,这种不充分使模型难以做出准确的标签预测。**为了解决类不平衡问题,我们首先在检测阶段冻结权重,然后使用其他公共可用的多语言数据集对识别器中的权重进行预训练:**SynthMLT,ART,LSVT,ReCTS和RCTW [4,8,41,38]。然后,我们让损失流经整个网络,并使用IC19数据集对模型进行微调。由于没有论文报告性能,因此我们将结果与E2E-MLT [4,33]进行比较。 IC19数据集的样本如图8所示。我们希望我们的研究可以作为IC19-MLT基准的未来工作的基线。
Ablation study
由字符区域注意辅助的注意力
在本节中,我们将通过训练没有CRA的单独网络来研究字符区域注意(CRA)如何影响识别器的性能。
表5显示了在基准数据集上使用CRA的效果。没有CRA,我们观察到在所有数据集上性能均下降。特别是在远景数据集(IC15)和弯曲数据集(TotalText)上,我们观察到与水平数据集(IC13)相比,差距更大。这意味着在处理不规则文本时,送入字符注意力信息可以提高识别器的性能。(?表格中的实验数据是对远景文本更有效,不知道这个结论如何得出来的?)
检测阶段的识别损失
流经检测阶段的识别损失会影响字符区域图和字符连接图的质量。我们期望识别损失有助于检测器更准确地定位字符区域。但是,在单词级别的评估中没有清楚地显示字符定位的改进。因此,为了显示检测器的单个字符定位能力,我们利用了CRAFT检测器中的伪字符框生成过程。在生成伪ground-truth时,监督网络会计算单词抄录中生成的伪字符数与ground-truth字符数之间的差。表6显示了使用完全训练的网络测得的每个数据集上的字符错误长度的数量。
在SynthText数据集上训练网络时,每个数据集上的字符错误长度很大。当对真实数据集进行训练时,通过将识别损失传播到检测阶段, 误差进一步降低。这意味着使用字符区域注意力可以提高检测器定位能力的质量。
方向估计的重要性
方向估计很重要,因为场景文本图像中有许多多方向文本。我们的逐像素平均方案对于识别器接收定义良好的特征非常有用。当不使用方向信息时,我们比较模型的结果。在IC15数据集上,性能从74.9%下降到74.1%(-0.8%),在TotalText数据集上,h-mean值从78.7%下降到77.5%(-1.2%)。结果表明,使用正确的角度信息可以提高旋转文本的性能。
Discussions
推理速度
由于推理速度随输入图像大小而变化,因此我们在不同的输入分辨率下测量FPS,每个分辨率的较长边分别为960、1280、1600和2560。测试结果得出的FPS分别为9.9、8.3、6.8和5.4。对于所有实验,我们使用Nvidia P40 GPU和Intel®Xeon®CPU。与基于VGG的CRAFT检测器的8.6 FPS [2]相比,基于ResNet的CRAFTS网络在相同大小的输入上可获得更高的FPS。而且,直接使用来自修正模块的控制点可以减轻对多边形生成进行后期处理的需要。
粒度差异问题
我们假设 ground-truth与预测框之间的粒度差异导致IC15数据集的检测性能相对较低。**字符级分割方法倾向于基于空间和颜色提示来概括字符连接性,而不是捕获单词实例的全部特征。**因此,输出不遵循基准测试要求的框的注释样式。图9显示了IC15数据集中的失败案例,这证明了当我们观察到可接受的定性结果时,检测结果被标记为不正确。
Conclusion
在本文中,我们提出了一种将检测和识别模块紧密耦合的端到端可训练单管道模型。 共享阶段中的字符区域注意力充分利用了字符区域图,以帮助识别器纠正和更好地参与文本区域。 此外,我们设计了识别损失通过在检测阶段传播并增强了检测器的字符定位能力。 此外,共享阶段的修正模块可以对弯曲的文本进行精细定位,并且无需开发手工后期处理。 实验结果验证了CRAFTS在各种数据集上的最新性能。