[ECCV2020]论文翻译:文本定位的字符区域注意
场景文本定位,包括文本检测和识别,由于其在即时翻译、图像检索和场景分析中的广泛应用,近年来引起了广泛的关注。尽管现有的文本检测器和识别器对水平文本是有效的,但是在场景图像中找到弯曲的文本实例仍然是一个挑战。
为了在图像中找到弯曲的文本,一种经典的方法是级联现有的检测和识别模型来管理每一侧的文本实例。检测器[32,31,2]试图通过应用复杂的后处理技术来捕捉弯曲文本的几何属性,而识别器则应用多向编码[6]或采用校正模块[37,46,11]来增强识别器对弯曲文本的准确性。
随着深度学习的发展,已经研究将检测器和识别器组合成一个端到端的网络,可以一起训练[14,29]。拥有统一的模型不仅可以提高模型的维度效率和速度,还可以帮助模型学习享受函数,从而提高整体性能。为了从这个属性中受益,我们还尝试使用端到端模型[32,34,10,44]来处理弯曲的文本实例。然而,大多数现有的工作只使用感兴趣区域池来享受检测和识别分支之间的底层特征。在训练阶段,通过检测和识别损失来训练* * * enjoy特征层,而不是训练整个网络。
如图1所示,我们提出了一种新颖的端到端字符区域注意力文本定位模型,称为CRAFTS。我们不是将检测和识别模块隔离在两个独立的分支中,而是通过在模块之间建立互补连接来建立单个管道。观察到使用基于注意力的解码器的识别器[1]和封装字符空间信息的检测器[2]共享一个公共子任务,该子任务用于定位字符区域。通过紧密集成这两个模块,检测阶段的输出可以帮助识别器更好地识别字符的中心点,并且从识别器到检测器阶段的损失将增强字符区域的位置。此外,网络可以最大化在公共子任务中使用的特征表示的质量。据我们所知,这是第一个建立紧密耦合损耗的端到端工作。
我们的贡献总结如下:
(1)我们提出了一个端到端的网络,可以检测和识别任意形状的文本。
(2)利用校正和识别模块上检测器的空间特征信息,构建模块间的互补关系。
(3)通过在整个网络的所有特征中分散识别损失来建立单个流水线。
(4)我们在IC13、IC15、IC19-MLT和TotalText [20,19,33,7]数据集上取得了最先进的性能,这些数据集包含了大量的水平、曲线和多语言文本。
文本检测和识别方法
检测网络使用基于回归的[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 ++检测器和CRNN [35]识别器。总之这种方法取得了不错的效果。
基于RNN的识别器的端到端使用
EAA [14]和FOTS [29]是基于EAST检测器[49]的端到端模型。这两个网络的区别在于识别器。FOTS模型使用CTC解码器[35],而EAA模型使用注意力解码器[36]。仿射变换层在两部作品中都实现了合并* * * *的功能。所提出的仿射变换在水平文本上工作良好,但是在处理任意形状的文本时表现出局限性。TextNet [42]提出了一种在特征池层进行透视RoI变换的空间感知文本识别器。该网络保留了RNN层来识别2D特征地图中的文本序列,但由于缺乏有表现力的四边形,该网络在检测弯曲文本时仍然表现出局限性。
秦等[34]提出了基于Mask-RCNN [13]的端到端网络。给定框建议,从* * *享受层合并特征,并通过使用ROI掩膜层过滤背景杂波。所提出的方法通过确保注意力仅在文本区域来提高其性能。布斯塔和其他人提出了深度文本观察者网络,并在E2E-MLT扩展了他们的工作。该网络由基于FPN的检测器和基于CTC的识别器组成。该模型以端到端的方式预测多种语言。
基于CNN的识别器的端到端使用
在处理任意形状的文本时,大多数基于CNN的模型在识别字符级文本方面具有优势。MaskTextSpotter [32]是一个使用分割方法识别文本的模型。虽然它在检测和识别单个字符方面具有优势,但由于它通常不提供公共数据集中的字符级标注,因此很难训练网络。CharNet [44]是另一种基于切分的方法,可以进行字符级的预测。通过弱监督训练模型,克服字符级标注缺乏的问题。在训练期间,该方法执行迭代字符检测以创建伪地面真相。
虽然基于切分的识别器取得了很大的成功,但是当目标字符数增加时,这种方法会受到影响。随着字符集数量的增加,基于分割的模型需要更多的输出通道,增加了对内存的要求。MaskTextSpotter [23]的期刊版本扩展了字符集以处理多种语言,但作者添加了一个基于RNN的解码器,而不是使用他们原来基于CNN的识别器。基于分段的识别器的另一个限制是在识别分支中缺少上下文信息。由于缺乏像RNN那样的顺序建模,模型的准确性在有噪声的图像下会降低。
TextDragon [10]是另一种基于分段的方法,用于定位和识别文本实例。然而,不能保证预测的字符段将覆盖单个字符区域。为了解决这个问题,该模型引入了CTC来删除重叠字符。该网络表现出良好的检测性能,但由于缺乏顺序建模,它在识别器中表现出局限性。
选择CRAFT detector [2]作为基本网络是因为它具有表达字符区域语义信息的能力。CRAFT网络的输出表示字符区域及其连接的中心概率。因为这两个模块的目标是定位字符的中心位置,所以我们假设该字符中心信息可以用于支持识别器中的注意模块。在这部作品中,我们对原始工艺模型做了三处改动;主干替换、连接表示和方向估计。
主干替换
最近的研究表明,使用ResNet50,可以捕获由检测器和识别器定义的清晰的特征表示[30,1]。因此,我们将骨干网从VGG-16 [40]改为ResNet50 [15]。
连接表示
竖排文本在拉丁文文本中并不常见,但在东亚语言(如中文、日文和韩文)中经常出现。在这项工作中,二进制中心线是用来连接连续的字符区域。这种变化的原因是,在垂直文本上使用原始亲和图往往会产生不适定的透视变换,从而生成无效的框架坐标。为了生成地面真值连接图,在相邻字符之间画一条粗细为t的线段。这里t = max ((d1+d 2)/2 * α,1),其中d1和d 2为相邻字符框的对角线长度,α为缩放因子。使用这个等式,中心线的宽度可以与字符的大小成比例。在实现中,我们将α设置为0.1。
方向估计
获得文本框的正确方向很重要,因为在识别阶段需要清楚地定义框架坐标以正确识别文本。为此,我们在检测阶段增加了两个通道的输出。通道用于预测字符沿X轴和Y轴的角度。以生成有向图的地面真值。
* * * Enjoy stage包括两个模块:文字修正模块和字符区域注意:CRA)模块。薄板样条(TPS) [37]变换用于校正任意形状的文本区域。受[46]的启发,我们的校正模块结合迭代TPS来更好地表示文本区域。通过有吸引力地更新控制点,可以改善图像中文本的弯曲几何形状。通过实证研究,我们发现三次TPS迭代就足以校正。
典型的TPS模块以单词图像作为输入,但是我们提供了字符区域图和连接图,因为它们封装了文本区域的几何信息。我们使用20个控制点来紧密覆盖弯曲的文本区域。为了使用这些控制点作为检测结果,它们被转换成原始输入图像坐标。我们可以选择执行2D多项式拟合来平滑边界多边形。迭代TPS和最终平滑多边形输出的示例如图4所示。
识别阶段的模块是根据[1]中报告的结果形成的。识别阶段包括三个部分:特征提取、序列建模和预测。因为特征提取模块使用高级语义特征作为输入,所以它比单个识别器更轻。
特征提取模块的详细架构如表1所示。提取特征后,将双向LSTM应用于序列建模,然后由基于注意力的解码器进行最终的文本预测。
在每个时间步,基于注意力的识别器将通过屏蔽特征的注意力输出来解码文本信息。虽然注意模块在大多数情况下工作良好,但当注意点错位或消失时,它无法预测字符[5,14]。图5显示了使用CRA模块的效果。适当的注意点可以做出可靠的文本预测。
训练的最终损失L由检测损失和识别损失组成,取L = Ldet+Lreg。确定损失的整个过程如图6所示。损失在识别阶段流经权重,并通过字符区域注意模块传播到检测阶段。
另一方面,检测损失被用作中间损失,因此使用检测和识别损失来更新检测阶段之前的权重。
英语数据集IC13 [20]数据集由高分辨率图像、229幅用于训练的图像和233幅用于测试的图像组成。矩形框用于注释单词级文本实例。IC15 [20]包含1000个训练图像和500个测试图像。四边形框用于注释单词级文本实例。总文本[7]
它有1255个训练图像和300个测试图像。与IC13和IC15数据集不同,它包含弯曲的文本示例,并使用多边形点进行标注。
多语言数据集IC 19 [33]数据集包含10,000个训练图像和10,000个测试图像。数据集包含7种不同语言的文本,并用四边形点进行注释。
我们共同训练CRAFTS模型中的检测器和识别器。为了训练检测阶段,我们遵循[2]中描述的弱监督训练方法。识别损失是通过在每幅图像中分批随机采样切割单词特征来计算的。每个图像的最大字数设置为16,以防止出现内存不足的错误。检测器中的数据增强应用了诸如裁剪、旋转和颜色变化等技术。对于识别器,地面真实帧的角在帧的短长度的0%到10%的范围内被扰乱。
首先,模型在SynthText数据集[12]上迭代训练50k,然后我们在目标数据集上进一步训练网络。使用Adam优化器,并应用在线硬负挖掘(OHEM) [39]来强制使用1: 3比率的正负像素来检测丢失。微调模型时,SynthText数据集以1: 5的比例混合。我们使用94个字符来涵盖字母、数字和特殊字符,4267个字符用于多语言数据集。
水平数据集(IC13,IC15)
为了达到IC13的基准,我们采用在SynthText数据集上训练的模型,并在IC13和IC19数据集上对其进行微调。在;在推理过程中,我们将输入的长边调整为1280。
结果表明,与最新技术相比,性能有显著提高。
然后在IC13数据集上训练的模型在IC15数据集上进行微调。在评估过程中,模型的输入大小设置为2560x1440。请注意,我们在没有通用词汇集的情况下执行通用评估。IC13和IC15数据集的定量结果列于表2。
热图用于说明字符区域图和连接图,加权像素角度值在HSV颜色空间可视化。
如图所示,网络成功地定位了多边形区域,并识别了弯曲文本区域中的字符。左上角的两个图显示了成功识别完全旋转和高度弯曲的文本示例。
字符区域注意辅助的注意
在本节中,我们将通过训练一个没有CRA的独立网络来研究字符区域注意(CRA)如何影响识别器的性能。
表5显示了在基准数据集上使用CRA的效果。没有CRA,我们在所有数据集上都观察到了性能下降。特别是在透视数据集(IC15)和曲线数据集(TotalText)中,我们观察到的差距比水平数据集(IC13)中的差距要大。这意味着在处理不规则文本时,可以通过发送字符的注意信息来提高识别器的性能。(?表中的实验数据对长期文本更有效。不知道这个结论是怎么得出的?)
方向估计的重要性
由于场景文本图像中存在许多多方向的文本,因此方向估计非常重要。我们的逐像素平均方案对于识别器接收明确定义的特征非常有用。当不使用方向信息时,我们比较模型的结果。在IC15数据集上,性能从74.9%下降到74.1% (-0.8%),在TotalText数据集上,h均值从78.7%下降到77.5% (-1.2%)。结果表明,使用正确的角度信息可以提高旋转文本的性能。
推理速度
由于推理速度随输入图像的大小而变化,我们在不同的输入分辨率下测量FPS,每个分辨率的长边分别为960、1280、1600和2560。从测试结果中获得的FPS分别为9.9、8.3、6.8和5.4。所有实验,我们用的都是Nvidia P40 GPU和Intel?至强?中央处理器.与基于VGG的CRAFT detector的8.6 FPS相比,基于ResNet的CRAFT network可以在相同的输入下获得更高的FPS。此外,直接使用来自校正模块的控制点可以减轻对多边形生成的后处理的需要。
粒度差异问题
我们假设真实数据和预测帧之间的粒度差异导致IC15数据集的检测性能相对较低。字符级分割方法倾向于基于空间和颜色线索来概括字符连接性,而不是捕获单词实例的所有特征。因此,输出没有遵循基准所要求的框的注释样式。图9显示了IC15数据集中的一个失败案例,证明了当我们观察到一个可接受的定性结果时,检测结果被标记为不正确。
在本文中,我们提出了一个端到端可训练的单流水线模型,它紧密耦合了检测和识别模块。* * *享受阶段对字符区域的关注,充分利用字符区域图,帮助识别器纠正,更好地参与到文本区域。此外,我们设计了识别损失在检测阶段进行传播,增强了检测器的字符定位能力。此外,* * *享受阶段的修改模块可以精确定位弯曲的文字,无需开发人工后期处理。实验结果验证了CRAFTS在不同数据集上的最新性能。