Multi-Oriented Scene Text Detection via Corner Localization and Region Segmentation

摘要

先前基于深度学习的最先进的场景文本检测方法可大致分为两类。第一类将场景文本视为一般对象的类型,并遵循一般对象检测范例,通过回归文本框位置来定位场景文本,但是受到场景文本的任意方向和大纵横比的困扰。第二个直接分割文本区域,但大多数需要复杂的后期处理。在本文中,我们提出了一种方法,它结合了两种方法的思想,同时避免了它们的缺点。我们建议通过定位文本边界框的角点并在相对位置分割文本区域来检测场景文本。在推理阶段,通过对角点进行采样和分组来生成候选框,其通过分割图进一步评分并由NMS抑制。与以前的方法相比,我们的方法可以自然地处理长方向文本,不需要复杂的后处理。在ICDAR2013,ICDAR2015,MSRA-TD500,MLT和COCO-Text上的实验表明,所提出的算法在准确性和效率方面实现了更好或相当的结果。基于VGG16,它在ICDAR2015上实现了84:3%的F测量,在MSRA-TD500上实现了81:5%的F测量。

1、介绍

最近,由于对现实世界应用(例如,产品搜索[4],图像检索[20]和自动驾驶)的不断增长的需求,从自然场景图像中提取文本信息已变得越来越流行。场景文本检测旨在定位自然图像中的文本,在各种文本阅读系统中起着重要作用[35,11,50,6,21,52,5,42,41,14,8,26]。

由于外部和内部因素,场景文本检测具有挑战性。外部因素来自环境,例如噪声,模糊和遮挡,这也是扰乱一般物体检测的主要问题。内部因素是由场景文本的属性和变化引起的。与一般物体检测相比,场景文本检测更复杂,因为:1)场景文本可能存在于任意方向的自然图像中,因此边界框也可以是旋转矩形或四边形; 2)场景文本边界框的宽高比变化很大; 3)由于场景文本可以是字符,单词或文本行的形式,因此在定位边界时可能会混淆算法。

近年来,随着一般目标检测和语义分割的快速发展,现场文本检测已被广泛研究[58,11,6,53,21,46,56,40,45],并取得了明显的进展。 基于一般对象检测和语义分割模型,进行了几个精心设计的修改以更准确地检测文本。那些场景文本检测器可以分成两个分支。第一个分支基于通用对象检测器(SSD [31],YOLO [38]和DenseBox [19]),如TextBoxes [28],FCRN [15]和EAST [57]等,它们预测候选边界框直。第二个分支基于语义分割,例如[56]和[54],它们生成分割图并通过后处理生成最终文本框。

 与以前的方法不同,在本文中,我们结合了对象检测和语义分割的思想,并以另一种方式应用它们。我们的动机主要来自两个观察结果:1)矩形可以由角点确定,无论矩形的大小,纵横比或方向如何; 2)区域分割图可以提供有效的文本位置信息。因此,我们首先直接检测文本区域的角点(左上角,右上角,右下角,左下角,如图1所示)而不是文本框。此外,我们预测位置敏感的分割图(如图1所示),而不是像[56]和[54]中的文本/非文本图。最后,我们通过对检测到的角点进行采样和分组来生成候选边界框,然后通过分割信息消除不合理的框。我们提出的方法的描述如图2所示。

该方法的主要优点如下:1)由于我们通过对角点进行采样和分组来检测场景文本,因此我们的方法可以自然地处理任意文本; 2)当我们检测角点而不是文本边界框时,我们的方法可以自发地避免宽高比变化大的问题; 3)通过位置敏感分割,它可以很好地分割文本实例,无论实例是字符,单词还是文本行; 4)在我们的方法中,候选框的边界由角点确定。与从锚点([28,33])或文本区域([57,17])回归文本边界框相比,生成的边界框更准确,特别是对于长文本。

我们验证了我们的方法在横向,定向,长和定向文本以及公共基准的多语言文本方面的有效性。结果表明了该算法在精度和速度方面的优势。具体而言,我们对ICDAR2015 [23],MSRA-TD500 [53]和MLT [2]的方法的F-测量值分别为84:3%,81:5%和72:4%,优于以前的状态。艺术方法显着。此外,我们的方法在效率方面也具有竞争力。它每秒可以处理超过10.4张图像(512x512大小)。

本文的贡献有四个方面:(1)我们提出了一种新的场景文本检测器,它结合了物体检测和分割的思想,可以进行端到端的训练和评估。 (2)基于位置敏感的ROI池[10],我们提出了一个旋转的位置敏感ROI平均池层,可以处理任意导向的提议。 (3)我们的方法可以同时处理多方面场景文本中的挑战(例如旋转,变化的宽高比,非常接近的实例),这些都是以前的方法所遇到的。 (4)我们的方法在准确性和效率方面都取得了更好或更具竞争力的结果

2 相关工作

2.1.  基于回归的文本检测

        基于回归的文本检测已成为近两年来场景文本检测的主流。在一般目标检测器的基础上,几种文本检测方法被提出,并取得了实质性进展。源自SSD [31],TextBoxes [28]使用“长”默认框和“长”卷积滤波器来应对极端宽高比。 同样,在[33] Ma等人利用Faster-RCNN [39]的架构,在RPN中添加旋转锚点,以检测任意导向的场景文本。 SegLink [40]预测文本片段及其在SSD样式网络中的链接,并将片段链接到文本框,以便处理自然场景中的长向文本。 基于DenseBox [19],EAST [57]直接回归文本框。

我们的方法也适用于一般物体探测器DSSD [12]。 但与上述直接回归文本框或段的方法不同,我们建议局部化角点的位置,然后通过对检测到的角进行采样和分组来生成文本框。

2.2。 基于分割的文本检测
        基于分段的文本检测是文本检测的另一个方向。 受FCN [32]的启发,提出了一些使用分割图检测场景文本的方法。 在[56],张等人首先尝试通过FCN从分段映射中提取文本块。 然后他们用MSER [35]检测那些文本块中的字符,并通过一些先验规则将字符分组为单词或文本行。 在[54]中,姚等人使用FCN预测输入图像的三种类型的地图(文本区域,字符和链接方向)。 然后进行一些后处理以获得具有分割图的文本边界框。

 与以前基于分割的文本检测方法不同,后者通常需要复杂的后处理,我们的方法更简单,更清晰。 在推理阶段,位置敏感的分割图用于对我们提出的旋转位置敏感平均ROI池层对候选框进行评分。

2.3。基于角点的通用目标检测
       基于角点的一般对象检测是一种通用对象检测方法的新流。在DeNet [48]中,Tychsen-Smith等人提出角点检测层和稀疏样本层以替换Faster-RCNN样式的两阶段模型中的RPN。在[51]中,Wang等人提出PLN(点链接网络),它使用完全卷积网络对边界框的角点/中心点及其链接进行回归。然后使用角点/中心点及其链接形成对象的边界框。

我们的方法受到基于角点的物体检测方法的启发,但存在关键差异。首先,我们方法的角点检测器是不同的。其次,我们使用分割图来对候选框进行评分。第三,它可以为对象(文本)生成任意导向的框。

 2.4。位置敏感分割
        最近,提出了具有位置敏感图的实例感知语义分割方法。在[9]中,戴等人首先介绍分段的相对位置,并为实例段提议提出InstanceFCN。在FCIS [27]中,在位置敏感的内/外得分图的帮助下,Li等人提出用于实例感知语义分段的端到端网络。

我们也采用位置敏感的分割图来预测文本区域。与上述方法相比,有三个主要区别:1)我们直接利用位置敏感的实况优化网络(详见4.1.1节); 2)我们的位置敏感地图可用于同时预测文本区域和评分建议(详见4.2.2节),与使用两种位置敏感地图(内部和外部)的FCIS不同; 3)我们提出的轮换位置敏感ROI平均池可以处理任意导向的提议。

3.网络
        我们用到的网络是一个全卷积网络,作用是特征提取、角点检测和位置敏感分割。 网络架构如图3所示。给定图像,网络产生候选角点和分割图。

3.1.  特征提取
        我们模型的主干是从预先训练的VGG16 [44]网络改编而来,其设计考虑了以下因素:1)场景文本的大小差异很大,因此骨干必须有足够的能力来很好地处理这个问题; 2)自然场景中的背景很复杂,因此特征应该更好地包含更多的上下文。受到FPN [29]和DSSD [12]在这些问题上取得的良好性能的启发,我们采用FPN / DSSD架构中的主干来提取特征。
        详细地说,我们将VGG16中的fc6和fc7转换为卷积层,并将它们分别命名为conv6和conv7。然后在conv7上方堆叠几个额外的卷积层(conv8,conv9,conv10,conv11)以扩大提取的特征的感知域。之后,DSSD [12]中提出的一些反卷积模块用于自上而下的途径(图3)。特别是,为了很好地检测不同大小的文本,我们使用256个通道将反卷积从conv11到conv3串联起来(来自conv10,conv9,conv8,conv7,conv4,conv3的特征被重用),并且总共构建了6个反卷积模块。为方便起见,我们将那些输出特征命名为F3; F4; F7; F8; F9; F10和F11。最后,由具有更丰富的特征表示的conv11和反卷积模块提取的特征用于检测角点并预测位置敏感的地图。

3.2.  角点检测
        对于给定的旋转矩形边界框R =(x; y; w; h;θ),有4个角点(左上角,右上角,右下角,左下角),可以表示为顺时针方向的二维角点坐标{(x1; y1); (x2; y2); (x3; y3); (x4; y4)}。为了方便地检测角点,这里我们重新定义并用水平方格C =(xc; yc; ss; ss)表示角点,其中xc; yc是角点的坐标(例如x1;y1表示左上角角点的坐标),也是方格C的中心坐标点。 ss是旋转的矩形边界框R的短边长度。
        与SSD和DSSD一样,我们使用默认框检测角点。与SSD或DSSD中每个默认框输出相应候选框的分类分数和偏移的方式不同,角点检测更复杂,因为在同一位置可能有多个角点(例如一个位置可以同时是一个选框的左下角和领一个选框的右上角)。所以在我们的方法中,默认框应输出候选框4种角点的四个分类分数和偏移。
        我们调整[12]中提出的预测模块,以卷积方式预测两个分支中的分数和偏移。为了降低计算复杂度,将所有卷积的滤波器设置为256。在一张m×n的特征图中,每个单元中有k个默认框,对于每个默认框的每种角点,“得分”分支和“偏移”分支分别输出2个分数和4个偏移。这里,“得分”分支的2个分数分别表示该位置是否存在角点。总的来说,“得分”分支和“偏移”分支的输出矩阵是k×q×2和k×q×4,其中q表示角点的类型。默认情况下,q等于4。


        在训练阶段,我们遵循SSD中默认框和地面实例的匹配策略。要检测具有不同大小的场景文本,我们在多个图层要素上使用多个大小的默认框。表1中列出了所有默认框的比例。默认框的纵横比设置为1。

3.3.  位置敏感分割
        在先前基于分割的文本检测方法[56,54]中,分割图用以表示每个像素属于文本区域的概率。然而,由于文本区域的重叠和文本像素的不准确预测,得分图中的那些文本区域总是不能很好的被区分。为了从分割图获得文本边界框,进行复杂的后期处理,方法如[56,54]。
        受InstanceFCN [9]的启发,我们使用位置敏感分割来生成文本分割图。与先前的文本分割方法相比,相对位置被使用了。详细地,对于文本边界框R,使用一个g×g规则网格将文本边界框划分为多个区间(比如,对于一个2×2网格,文本区域可以分成4个区间,即顶部 - 左,右上,右下,左下)。对于每个区间,使用分割图来确定该地图中的像素是否属于该区间。
        在统一网络中,我们使用角点检测构建位置敏感分段。我们重用F3,F4,F7,F8,F9的特征,并在它们上构建一些卷积块,在角点检测分支当中遵循残余块体系结构(如图3所示)。通过双线性上采样将这些块的输出调整为F3的比例,比例因子被设置为1,2,4,8,16。然后将具有相同比例的输出相加以产生更丰富的特征。我们通过两个连续的Conv1x1-BN-ReLU-Deconv2x2块进一步扩大融合特征的分辨率,并将最后一个去卷积层的内核设置为g×g。因此,最终的位置敏感分割图具有g×g个通道并且具有与输入图像相同的大小。在这项工作中,我们默认将g设置为2。

4.培训和推理

4.1.   训练

4.1.1  标签生成
        对于输入训练样本,我们首先将每个文本框转换为最小外切矩形,然后确定4个角点的相对位置。
        我们通过以下规则确定旋转矩形的相对位置:1)顶部和左下角点的x坐标必须小于右上角和右下角点的x坐标; 2)左上角和右上角点的y坐标必须分别小于左下角和右下角点的y坐标。之后,实际选框可以表示为具有角点相对位置的旋转矩形。为方便起见,我们将旋转的矩形称为R= \left \{ Pi | i \in \left \{ 1,2,3,4 \right \} \right \},其中Pi =(xi; yi)是旋转矩形的角点,包括左上角,右上角,右下角,左下角。
        我们使用R生成角点检测和位置敏感分割的标签。对于角点检测,我们首先计算R的短边并用水平方块表示4个角点,如图4(a)所示。对于位置敏感的分割,我们使用R生成文本/非文本的像素掩码。我们首先初始化4个与输入图像具有相同比例的掩码,并将所有像素值设置为0。然后我们将R分成四个带有2×2规则网格的区间,并将每个区域分配给一个掩码,例如左上方的区域到第一个掩码。之后,我们将这些区域中所有像素的值设置为1,如图4(b)所示。

4.1.2优化

      我们同时训练角点检测和位置敏感分割。损失函数定义为:

        其中 Lconf 和 Lloc 是角点检测模块中预测置信度得分的得分分支和角点检测模块中的偏移分支的损失函数。 Lseg是位置敏感分割的损失函数。 Nc是默认框的数量,Ns是分割图中的像素数。 Nc和Ns用于归一化角点检测和分割的损失。 λ1和λ2是三个任务的平衡因子。默认情况下,我们将λ1设置为1,将λ2设置为10。
        我们遵循SSD的匹配策略,并使用交叉熵损失训练得分分支:                                                                                  

       其中yc是所有默认框,1表示正确,0表示错误。 pc是预测的分数。考虑到正样品和负样品之间的极端不平衡,类别均质化是必要的。我们使用[43]中提出的online hard negative mining proposed 来平衡训练样本,并将正样本与负样本比率设置为1:3。

*************************************************************************

初始化:针对每一个Fi,初始化一个深度为2*4(4个角)*default box,大小与feature map一样的矩阵,然后reshape到[?,2]的矩阵

yc:初始化一个深度为2*4*default box,大小与feature map一样的矩阵,如果该点对应存在gtbox,其值为[0,1],否则值为[1,0]。通过实际的gtbox与feature map映射到原图之后对应的感受野的default box的交并比来判断是否存在角点。比如feature map大小为4*4,其中一个点对应原图中128*128的感受野,存在4个default box,在感受野中存在一个30*30的焦点框,将每一个default box与gt box进行交并比的运算,小于0.5则认为不存在角点框,大于0.5则认为存在角点框,认为feature map上该点的default box都不存在角点矩阵,所以该点的深度值为32

pc:得到的feature map Fi,Fi通过Corner Point Decection的网络卷积得到了一个与yc一样大小的预测矩阵,reshape到[?,2],使用softmax标准化参数,使两两之间的数据的和为1,再reshape回feature map大小

将pc与yc同样进行reshape到[?,2],由于第二列的1表示存在角点框,所以取第二列作为标签进行运算。

由于pos的标签前会远大于neg的标签,因此选择neg的标签中score的值从大到小的3*pos的点进行计算

使用交叉熵计算损失

*************************************************************************

       对于偏移分支,我们将相对于默认框的偏移量作为fast-RCNN [13]进行回归,并使用平滑L1损失对其进行优化:

       其中yl是真实框的便宜量,pl是预测的偏移。y1可以通过默认框B =(xb; yb; ssb; ssb)和角点框C =(xc; yc; ssc; ssc)来计算 [13]。

*************************************************************************

初始化:针对每一个Fi初始化一个与之一样大小的矩阵,深度为default*4(4个角)*4。

yl:Fi的每一个点都有一定数量的default box,每个default box与真实的gt box进行计算,得到4个值,

其中x*表示gt box,xa表示defaule box

pl:Fi通过Corner Point Decection的网络卷积得到的一个与yl同样大小的矩阵

然后将yl与pl分别reshape到[?,4]的大小,然后使用平滑L1损失进行损失计算

*************************************************************************

       我们通过最小化Dice 损失来训练位置敏感的分割[34]:


      其中ys是位置敏感分段的标签,ps是我们分段模块的预测。

*************************************************************************

ys:是一个与feature map一样大的矩阵,深度为4,四个深度每一层的内容见图4(b),其中黑色部分为0,白色部分为1。

ps:通过postion sensitive segmentation卷积得到

通过dice损失计算损失。

*************************************************************************

4.2.  推论

4.2.1  采样和分组

在推理阶段,许多角点都符合预测位置、短边和置信度得分。保留高分(默认值大于0.5)的分数。在NMS之后,基于相对位置信息组成4个角点集。
我们通过对预测的角点进行采样和分组来生成候选边界框。理论上,旋转的矩形可以由两个点和垂直于由两个点构成的线段的一侧构成。对于预测点,短边是已知的,因此我们可以通过对角点集中的两个角点进行任意采样和分组来形成旋转矩形,例如(左上角,右上角),(右上角,下角 - 右),(左下,右下)和(左上,左下)对。
几个先验规则用于过滤不合适的对:1)不能违反相对位置关系,例如左上角点的x坐标必须小于(左上角,右上角)对中的顶点的x坐标; 2)构造的旋转矩形的最短边必须大于阈值(默认值为5); 3)一对中两点的预测短边ss1和ss2必须满足:

4.2.2  评分

       在对角点进行采样和分组之后,可以生成大量候选边界框。 受InstanceFCN [9]和RFCN [10]的启发,我们通过位置敏感的分割图对候选边界框进行评分。 这些过程如图5所示。为了处理旋转的文本边界框,我们在[10]中调整了位置敏感的ROI池层,并提出了旋转位置敏感的ROI平均池化层。 具体来说,对于旋转的候选框,我们首先将候选框分成g×g区域。 然后我们为每个区域生成一个矩形,其最小区域覆盖。 我们遍历最小矩形中的所有像素,并计算区域中所有像素的平均值。 最后,通过平均g×g区间的平均值来获得旋转的边界框的得分。 算法1中显示了具体的过程。低分的候选框将被过滤掉。 我们默认将阈值τ设置为0.6。

猜你喜欢

转载自blog.csdn.net/Diana_Z/article/details/81327032