文本检测的字符区域感知

摘要

最近出现了基于神经网络的场景文本检测方法,并显示出令人鼓舞的结果。经过严格的单词级边界框训练的先前方法在以任意形状表示文本区域方面显示出局限性。在本文中,我们提出了一种新的场景文本检测方法,通过探索每个字符和字符之间的亲和力来有效地检测文本区域。为了克服单个字符级注释的不足,我们提出的框架利用了合成图像的给定字符级注释和通过学习的临时模型获取的真实图像的估计字符级基础。为了估计字符之间的亲和力,使用新提出的亲和力表示来训练网络。在六个基准测试上进行了广泛的实验,包括TotalText和CTW-1500数据集,这些数据集在自然图像中包含高度弯曲的文本,这表明我们的字符级文本检测明显优于最新的检测器。根据结果,我们提出的方法保证了检测复杂场景文本图像(如任意定向,弯曲或变形文本)的高度灵活性。

1.引言

场景文本检测由于其众多应用(例如即时翻译,图像检索,场景解析,地理位置和盲目导航)而在计算机视觉领域引起了广泛关注。近来,基于深度学习的场景文本检测器显示出令人鼓舞的性能[8、40、21、4、11、10、12、13、17、24、25、32、26]。这些方法主要训练他们的网络以定位字级边界框。但是,它们可能会遇到困难的情况,例如弯曲,变形或过长的文本,这些文本很难用单个边界框检测到。 然而,当通过自下而上的方式链接连续的字符来处理具有挑战性的文本时,字符级意识具有许多优点。 不幸的是,大多数现有的文本数据集都没有提供字符级注释,并且获取字符级基础事实所需的工作过于昂贵。
在本文中,我们提出了一种新颖的文本检测器,该文本检测器可以定位各个字符区域并将检测到的字符链接到文本实例。 我们的框架被称为用于文字检测的字符区域感知的CRAFT,是使用卷积神经网络设计的,该卷积神经网络生成字符区域得分和亲和力得分。区域分数用于在图像中定位单个字符,而亲和度分数用于将每个字符分组为单个实例。 为了弥补字符级注释的不足,我们提出了一个弱监督学习框架,该框架估计现有真实单词级数据集中的字符级基本事实。
图1.使用CRAFT进行字符级检测的可视化。(a)我们提议的框架预测的热图 (b)各种形状的文本的检测结果

图1是CRAFT在各种形状的文本上的结果的可视化。通过利用字符级区域意识,可以轻松呈现各种形状的文本。我们在ICDAR数据集上进行了广泛的实验[15、14、28],以验证我们的方法,实验结果表明,该方法优于最新的文本检测器。此外,在MSRATD500,CTW-1500和TotalText数据集上进行的实验[36、38、3]显示了该方法在复杂情况下(例如长,弯曲和/或任意形状的文本)的高度灵活性。

2.相关工作

在深度学习出现之前,场景文本检测的主要趋势是自下而上,其中以手工功能(例如MSER[27]或SWT[5])为基本组成部分是最主要的。最近,通过采用流行的对象检测/分段方法(如SSD[20],Faster R-CNN[30]和FCN[23]),提出了基于深度学习的文本检测器。
基于回归的文本检测。已经提出了使用从流行的对象检测器改编的使用框回归的各种文本检测器。与一般对象不同,文本通常以不规则的形状呈现,具有各种纵横比。 为了解决这个问题,TextBoxes[18]修改了卷积核和锚定框以有效地捕获各种文本形状。DMPNet[22]试图通过合并四边形滑动窗口来进一步减少该问题。最近,提出了旋转敏感回归检测器(RSDD)[19],该检测器通过主动旋转卷积滤波器来充分利用旋转不变特征。但是,使用这种方法来捕获野外存在的所有可能形状存在结构上的限制。
基于回归的文本检测。已经提出了使用从流行的对象检测器改编的使用框回归的各种文本检测器。与一般对象不同,文本通常以不规则的形状呈现,具有各种纵横比。 为了解决这个问题,TextBoxes[18]修改了卷积核和锚定框以有效地捕获各种文本形状。DMPNet[22]试图通过合并四边形滑动窗口来进一步减少该问题。最近,提出了旋转敏感回归检测器(RSDD)[19],该检测器通过主动旋转卷积滤波器来充分利用旋转不变特征。但是,使用这种方法来捕获野外存在的所有可能形状存在结构上的限制。
基于回归的文本检测。已经提出了使用从流行的对象检测器改编的使用框回归的各种文本检测器。与一般对象不同,文本通常以不规则的形状呈现,具有各种纵横比。 为了解决这个问题,TextBoxes[18]修改了卷积核和锚定框以有效地捕获各种文本形状。DMPNet[22]试图通过合并四边形滑动窗口来进一步减少该问题。最近,提出了旋转敏感回归检测器(RSDD)[19],该检测器通过主动旋转卷积滤波器来充分利用旋转不变特征。但是,使用这种方法来捕获野外存在的所有可能形状存在结构上的限制。
基于分段的文本检测器另一种常见的方法是基于处理分段的工作,该工作旨在在像素级别上查找文本区域。这些通过估计单词边界区域来检测文本的方法,例如多尺度FCN [7],整体预测[37]和PixelLink [4],也已经提出使用分段作为其基础。SSTD [8]尝试通过使用注意力机制通过减少特征级别的背景干扰来增强文本相关区域,从而从回归和分割方法中受益。最近,提出了TextSnake [24]通过预测文本区域和中心线以及几何属性来检测文本实例。
端到端文本检测器端到端方法同时训练检测和识别模块,以便通过利用识别结果来提高检测精度。 FOTS [21]和EAA [10]连接了流行的检测和识别方法,并以端到端的方式对其进行了训练。Mask TextSpotter [25]利用他们的统一模型将识别任务视为语义分割问题。显然,使用识别模块进行训练可以帮助文本检测器对类似文本的背景杂波变得更加健壮。
大多数方法都以单词为单位来检测文本,但是定义单词的检测范围并非易事,因为单词可以按各种标准(例如含义,空格或颜色)分开。另外,不能严格定义分词的边界,因此分词本身没有明显的语义。单词注解的这种含混不清稀释了回归和分割方法的地面真理的含义。
字符级文本检测器 Zhang等。[39]提出了一种字符级检测器,它使用了由MSER [27]提炼的文本块候选。它使用MSER识别单个字符的事实限制了在某些情况下(例如对比度低,曲率和光反射的场景)的检测鲁棒性等。[37]使用了字符的预测图以及文本单词区域和需要字符级别注释的链接方向的图。代替显式的字符级预测,Seglink [32]搜索文本网格(部分文本段),并将这些段与其他链接预测相关联。 即使Mask TextSpotter [25]预测了字符级别的概率图,它也被用于文本识别而不是发现单个字符。
这项工作的灵感来自WordSup [12]的思想,该思想使用了一个弱监督框架来训练字符级检测器。但是,Wordsup的缺点是字符表示形式是在矩形锚中形成的,因此很容易受到由不同摄影机视点引起的字符透视变形的影响。而且,它受到骨干结构性能的约束(即,使用SSD,并受到锚定盒的数量及其尺寸的限制)。

3.方法

我们的主要目标是在自然图像中精确定位所有单个字符。为此,我们训练了一个深度神经网络来预测字符区域和字符之间的亲和力。由于没有可用的公共数据集,因此该模型是以弱监督的方式进行训练的。

3.1结构

我们采用基于VGG-16 [34]和批处理归一化的全卷积网络体系结构作为我们的骨干。 我们的模型在解码部分具有跳过连接,这类似于U-net [31],因为它聚合了低级特征。最终输出具有两个通道作为得分图:区域得分和亲和力得分。图2示意性地示出了网络架构。
图2.我们的网络架构的示意图

3.2训练

3.2.1真实标签生成

对于每个训练图像,我们使用字符级边界框生成区域分数和亲和度分数的地面真相标签。区域得分表示给定像素是字符中心的概率,而亲和力得分表示相邻字符之间空间的中心概率。
与二进制分割图不同,二进制分割图离散地标记每个像素,我们使用高斯热图对字符中心的概率进行编码。 此热图表示已用于其他应用程序,例如姿势估计工作[1,29],因为它在处理不受严格限制的地面真实区域时具有很高的灵活性。我们使用热图表示来学习区域得分和亲和力得分。

图3.我们框架中的真实数据生成过程的图示。 我们从具有字符级别注释的合成图像生成真实数据标签

对于亲和度得分的基本事实,亲和度框是使用相邻的字符框定义的,如图3所示。通过绘制对角线以连接每个字符框的相对角,我们可以生成两个三角形-我们将参考它们 作为上下字符三角形。然后,对于每个相邻的字符框对,通过将上下三角形的中心设置为该框的角来生成相似度框。
提出的地面实况定义使模型能够充分检测大型或长文本实例,尽管使用的接收域较小。另一方面,在这种情况下,像盒回归之类的先前方法需要较大的接受场。 我们的字符级检测使卷积过滤器可以只关注字符内和字符间,而不关注整个文本实例。

3.2.2弱监督学习

与合成数据集不同,数据集中的真实图像通常具有单词级注释。在这里,我们以弱监督的方式从每个单词级注释生成字符框,如图4所示。当提供带有单词级注释的真实图像时,学习的过渡模型将预测裁剪后的单词图像的字符区域得分生成字符级边界框。为了反映临时模型预测的可靠性,每个单词框上的置信度图的值与检测到的字符数除以地面真实字符数成正比,用于在学习期间权重训练。
图4.提出的方法的整体培训流程的图示。训练是在弱监督的情况下使用真实图像和合成图像进行的

图6显示了拆分字符的整个过程。首先,从原始图像中裁剪单词级图像。其次,最新训练的模型可以预测区域得分。第三,分水岭算法[35]用于分割字符区域,用于使字符边界框覆盖区域。最后,使用裁剪步骤中的逆变换,将字符框的坐标转换回原始图像坐标。可以使用获得的四边形字符级边界框通过图3中描述的步骤来生成区域分数和亲和度分数的伪真实数据(pseudoGTs)。

图6.从单词级注释中实现字符级注释的字符拆分过程:1)裁剪单词级图像;2)预测区域分数;3)应用分水岭算法;4)得到字符边界框;5)解开字符边界框

当使用弱监督训练模型时,我们被迫使用不完整的伪GT进行训练。如果使用不正确的区域分数训练模型,则字符区域内的输出可能会模糊。为了防止这种情况,我们测量了模型生成的每个伪GT的质量。幸运的是,文本注释中有一个非常强烈的提示,即单词长度。在大多数数据集中,提供了单词的转录,单词的长度可用于评估伪GT的置信度。
对于训练数据的单词级注释样本w,令R(w)和l(w)分别为样本w的边界框区域和词长。通过字符分割过程,我们可以获得估计的字符边界框及其对应的字符长度lc(w)。

  • 然后将样本w的置信度得分sconf(w)计算为

  • 图像的像素置信度图Sc计算为

  • 其中p表示区域R(w)中的像素。目标L定义为

其中$S{\times}r(p)$和$Sa{\times}(p)$分别表示伪地面真相区域得分和亲和力图,而Sr(p)和Sa(p)分别表示预测区域得分和亲和力得分。在使用综合数据进行训练时,我们可以获得真实的地面真相,因此将Sc(p)设置为1。
随着训练的进行,CRAFT模型可以更准确地预测角色,并且置信度得分sconf(w)也逐渐增加。图5示出了训练期间的人物区域得分图。 在训练的早期阶段,自然图像中不熟悉的文本的区域分数相对较低。该模型学习新文本的外观,例如不规则字体和合成文本,这些文本的数据分布与SynthText数据集的数据分布不同。
如果置信度得分sconf(w)低于0.5,则应忽略估计的字符边界框,因为它们在训练模型时会产生不利影响。在这种情况下,我们假设单个字符的宽度是恒定的,并通过简单地将单词区域R(w)除以字符数l(w)来计算字符级预测。然后,将sconf(w)设置为0.5,以学习看不见的文本外观。

3.2推理

在推断阶段,最终输出可以各种形状传递,例如单词框或字符框,以及其他多边形。对于像ICDAR这样的数据集,评估协议是单词级交联(IoU),因此在此我们描述如何通过简单但有效的后处理步骤,从预测的Sr和Sa中制作单词级边界框QuadBox。
查找边界框的后处理总结如下。首先,将覆盖图像的二进制映射M初始化为0。如果Sr(p)>τr或Sa(p)>τa,则M(p)设置为1,其中τr是区域阈值,而τa是亲和度阈值。其次,在M上执行连接组件标签(CCL)。最后,通过找到具有最小面积的旋转矩形来获得QuadBox,该矩形包围着与每个标签相对应的连接组件。 OpenCV提供的诸如connectedComponents和minAreaRect之类的功能可以用于此目的。
请注意,CRAFT的优点是它不需要任何其他后处理方法,例如非最大抑制(NMS)。 由于我们有用CCL分隔的单词区域的图像斑点,因此,单词的边界框仅由单个封闭矩形定义。另一方面,我们的字符链接过程是在像素级别进行的,这与其他基于链接的方法[32、12]明显不同,后者依赖显式地搜索文本组件之间的关系。

图7.任意形状的文本的多边形生成

另外,我们可以在整个字符区域周围生成多边形,以有效处理弯曲的文本。多边形生成的过程如图7所示。第一步是沿着扫描方向找到字符区域的局部最大值,如图中蓝色箭头所示。将局部最大值线的长度均等地设置为其中的最大长度,以防止最终的多边形结果变得不均匀。 连接局部最大值的所有中心点的线称为中心线,以黄色显示。然后,旋转局部最大值线以使其垂直于中心线,以反映字符的倾斜角度,如红色箭头所示。局部最大值线的端点是文本多边形控制点的候选项。为了完全覆盖文本区域,我们将两条最外侧倾斜的局部最大值线沿局部最大值中心线向外移动,以形成最终控制点(绿色点)。