(五)PSENet----2019CVPR论文解读

Shape Robust Text Detection with Progressive Scale Expansion Network

基于渐进式尺度扩展网络的形状稳健文本检测

Abstract

近年来,随着卷积神经网络的发展,场景文本检测技术取得了长足的进步。然而,仍然存在两个挑战,阻碍了该算法进入工业应用。一方面,目前的大多数算法对任意形状的文本定位都需要四边形的包围盒,而四边形包围盒的定位精度不高。另一方面,彼此接近的两个文本实例可能导致覆盖两个实例的错误检测。传统上,基于分割的方法可以缓解第一个问题,但通常不能解决第二个挑战。针对这两个挑战,本文提出了一种新的渐进式尺度扩展网络(PSENet),它可以精确地检测任意形状的文本实例。更具体地说,PSENet为每个文本实例生成不同尺度的核,并逐步将最小尺度核扩展到具有完整形状的文本实例。由于在最小尺度核之间存在较大的几何裕度,我们的方法可以有效地分割封闭的文本实例,使得基于分割的方法更容易检测出任意形状的文本实例。在CTW1500、Total-Text、ICDAR 2015和ICDAR 2017 MLT上的大量实验验证了PSENet的有效性。值得注意的是,在充满长曲线文本的数据集CTW1500上,PSENet在27FPS时达到74.3%的F值,而我们最好的F值(82.2%)则表现出6.6%的最新算法。 该代码将在将来发布。
在这里插入图片描述

1 Introduction

野外场景文本检测是场景理解、产品识别、自动驾驶等众多应用中的一个基本问题。随着卷积神经网络(CNNs)的迅速发展,近年来取得了很大的进展[9,14,31]。现有的基于CNN的算法大致可以分为两类:基于回归的方法和基于分割的方法。

对于基于回归的方法[36、42、32、16、41、23、11、13、27],文本目标通常以具有特定方向的矩形或四边形的形式表示。但是,基于回归的方法 无法处理具有任意形状的文本实例,例如,如图1(b)所示的曲线文本。 另一方面,基于分段的方法基于像素级分类来定位文本实例。 但是,很难分离彼此靠近的文本实例。 通常,可以基于基于分段的方法来预测覆盖彼此接近的所有文本实例的错误检测。 图1(c)示出了一个例子。

为了解决这些问题,本文提出了一种新的基于核的框架,即渐进式规模扩展网络(PSENet)。我们的PSENet有以下两个好处。首先,作为一种基于分割的方法,PSENet进行像素级分割,能够精确定位任意形状的文本实例。其次,我们提出了一种渐进式尺度扩展算法,利用该算法可以成功地识别相邻的文本实例,如图1(D)所示。更具体地说,我们为每个文本实例分配多个预测分割区域,为简单起见,这些区域被表示为“核”。每个核的形状与原始文本实例相似,但比例不同。为了得到最终的检测结果,我们采用了一种基于广度优先搜索(BFS)的渐进式尺度扩展算法。通常有3个步骤:1)从尺度最小的核开始(在这一步中可以区分实例);2)通过在较大的核中逐渐包含更多的像素来扩展它们的区域;3)完成,直到探索到完整的文本实例(最大的核)。

渐进式比例扩展算法的设计有三个潜在的原因。首先,尺度最小的核函数边界较远,容易分离。其次,最小尺度核不能覆盖文本实例的完整区域(参见图2(B))。因此,有必要从最小尺度核中恢复完整的文本实例。第三,渐进式尺度扩展算法是一种简单有效的小核扩展为完整文本实例的方法,保证了文本实例的准确定位。

为了展示我们提出的PSENet的有效性,我们对四个竞争性基准数据集进行了广泛的实验,包括ICDAR 2015 [17],ICDAR 2017 MLT [1],CTW1500 [24]和Total-Text [2]。 在这些数据集中,CTW1500和Total-Text被明确设计用于曲线文本检测。 具体来说,在包含长曲线文本的数据集CTW1500上,我们的最新结果绝对比最新结果高出6.6%,而我们的实时模型在27 FPS时达到了可比的性能(74.3%)。 此外,拟议的PSENet在多方位和多语言文本数据集上也取得了可喜的性能:ICDAR 2015和ICDAR 2017 MLT。
在这里插入图片描述

2 Related Work

基于深度学习方法的场景文本检测在过去几年中取得了显著的效果。现代文本检测器主要基于CNN框架,其中场景文本检测大致分为两类:基于回归的方法和基于分割的方法。

基于回归的方法 通常基于通用的对象检测框架,例如更快的R-CNN[31]和SSD[22]。TextBoxs[19]修改了卷积内核的锚定比例和形状,以适应文本的各种长宽比。EAST[42]使用FCN[25]直接预测每个像素的记分图、旋转角度和文本框。RRPN[28]采用了更快的R-CNN,并提出了RPN部分的旋转方案来检测任意方向的文本。RRD[20]从两个单独的分支中提取了用于文本分类和回归的特征映射,以更好地进行长文本检测。

然而,大多数基于回归的方法往往需要复杂的锚设计和繁琐的多个阶段,这可能需要穷尽的调优,并导致次优性能。此外,上述工作是专门针对多方向文本检测而设计的,在处理实际场景中分布广泛的曲线文本时可能会出现不足。

基于分割的方法主要受全卷积网络(FCN)的启发[25]。 张等。 [39]首先采用FCN提取文本块并通过MSER从这些文本块中检测字符候选。 姚等。 [38]将一个文本区域表述为各种属性,例如文本区域和方向,然后利用FCN预测相应的热图。 Lyu等人[27] 利用角点定位找到适合文本实例的不规则四边形。 PixelLink [4]通过预测不同文本实例之间的像素连接来分离彼此靠近的文本。 最近,TextSnake [26]使用有序磁盘来表示曲线文本以进行曲线文本检测。 SPC-Net [?]使用实例分割框架,并利用上下文信息检测任意形状的文本,同时抑制误报。

在这里插入图片描述
上述工作在几个水平和多向文本基准上取得了优异的性能。类似地,除了TextSnake[26]之外,上述大多数方法都没有特别关注曲线文本。然而,TextSnake在推理过程中仍然需要耗时且复杂的后处理步骤(集中、跨步和滑动),而我们提出的渐进式规模扩展只需要一个干净而高效的步骤。

3 Proposed Method

在这一部分中,我们首先介绍拟议中的渐进式规模扩展网络(PSENet)的总体管道。接下来,我们详细介绍了渐进式尺度扩展算法,并提出了能够有效区分位置相近的文本实例的算法。最后介绍了标签的生成方法和损失函数的设计。

3.1. Overall Pipeline

图3显示了我们建议的PSENet的高级概述。我们使用ResNet[10]作为PSENet的主干。我们将低层纹理特征和高层语义特征串联在一起。这些映射在F中进一步融合,以编码具有各种接受视图的信息。直观地说,这种融合很可能促进各种尺度的核的产生。然后将特征映射图F投影到n个分支,以产生多个分割结果S1、S2、…、Sn。对于特定比例的所有文本实例,每个Sii将是一个分割掩码。不同分割掩码的尺度由超参数决定,这将在SEC中讨论。3.4.。在这些掩码中,S1给出了具有最小尺度(即最小核)的文本实例的分割结果,并给出了原始分割掩码的Snenodes(即最大核)的分割结果。在得到这些分割掩码后,我们使用渐进尺度扩展算法将S1中的所有实例核逐步扩展到它们在Sn中的完整形状,并得到最终的检测结果R。

3.2. Network Design

PSENet的基本框架由FPN[21]实现。我们首先从主干中得到四个256个通道的特征图(即P2,P3,P4,P5)。为了进一步将语义特征从低到高进行组合,我们通过函数C(·)将四个特征映射进行融合,得到1024个通道的特征映射F,如下所示:
F = C ( P 2 , P 3 , P 4 , P 5 ) = P 2 U p × 2 ( P 3 ) U p × 4 ( P 4 ) U p × 8 ( P 5 ) 1 \begin{aligned} F &=\mathbb{C}\left(P_{2}, P_{3}, P_{4}, P_{5}\right) \\ &=P_{2}\left\|\mathrm{Up}_{\times 2}\left(P_{3}\right)\right\| \mathrm{Up}_{\times 4}\left(P_{4}\right) \| \mathrm{Up}_{\times 8}\left(P_{5}\right) (1) \end{aligned}
其中“k”表示级联,Up×2(·)、Up×4(·)、Up×8(·)分别表示2次、4次、8次上采样。随后,F被馈送到Conv(3,3)-BN-REU层,并且被减少到256个信道。接下来,它通过n个Conv(1,1)-Up-Sigmoid层并产生n个分割结果S1,S2,…,Sn。这里,Conv、BN、RELU和UP指的是卷积[18]、批归一化[15]、校正的线性单元[6]和上采样。

3.3. Progressive Scale Expansion Algorithm

如图1©所示,基于分割的方法很难分离彼此接近的文本实例。为了解决这一问题,我们提出了一种渐进式规模扩展算法。
在这里插入图片描述
这是一个生动的例子(见图4),它解释了逐步扩展尺度算法的过程,其中心思想来自广度优先搜索(BFS)算法。 在示例中,我们有3个分割结果S = {S1,S2,S3}(请参见图4(a),(e),(f))。 首先,基于最小内核映射S1(参见图4(a)),可以找到4个不同的连接组件C = {c1,c2,c3,c4}作为初始化。 图4(b)中具有不同颜色的区域分别表示这些不同的连接组件。 到目前为止,我们已经检测到所有文本实例的中心部分(即最小内核)。 然后,通过合并S2和S3中的像素,逐步扩展检测到的内核。 两次缩放的结果分别显示在图4(c)和图4(d)中。 最后,我们提取图4(d)中用不同颜色标记的连接组件作为文本实例的最终预测。

图4(g)示出了水垢膨胀的过程。该扩展基于“广度优先搜索”算法,该算法从多个内核的像素开始,并迭代合并相邻的文本像素。注意,在扩展过程中可能会有冲突的像素,如图4(g)中的红色框所示。在我们的实践中,解决冲突的原则是,混淆的像素只能在先到先得的基础上由单个内核合并。由于采用了“渐进式”扩展程序,这些边界冲突将不会影响最终的检测和性能。规模扩展算法的详细信息总结在算法1中。在伪代码中,T,P为中间结果。 Q是一个队列.Neighbor(·)表示p的相邻像素(4向).GroupByLabel(·)是按标签分组中间结果的功能。 “ Si [q] = True”表示Si中的像素q的预测值属于文本部分。 C和E分别用于在扩展之前和之后保留内核。

在这里插入图片描述

3.4. Label Generation

在这里插入图片描述
如图3所示,PSENet产生具有不同核尺度的分割结果(例如S1,S2,…,Sn),因此在训练过程中需要具有不同核尺度的相应地面实况。 在我们的实践中,可以通过收缩原始文本实例来简单有效地进行这些地面真相标签。 图5(b)中带有蓝色边框的多边形表示原始文本实例,它对应于最大的分割标签掩码(请参见图5(c)中最右边的地图)。 为了依次获得图5(c)中的缩小蒙版,我们利用V atti裁剪算法[37]来缩小原始多边形pnby双像素并得到缩小的多边形pi(请参见图5(a))。 随后,将每个收缩的多边形piis转移到0/1二进制掩码中,以进行分割标签地面真相。 我们将这些地面真值图分别表示为G1,G2,…,Gn。 在数学上,如果我们将缩放比例视为ri,则pn和pican之间的边距di可计算为:
d i = Area ( p n ) × ( 1 r i 2 ) Perimeter ( p n ) 2 d_{i}=\frac{\operatorname{Area}\left(p_{n}\right) \times\left(1-r_{i}^{2}\right)}{\operatorname{Perimeter}\left(p_{n}\right)}(2)
其中,面积(·)是计算多边形面积的函数,周长(·)是计算多边形周长的函数。在此基础上,定义了地面真实地图的比例尺RIAS:
r i = 1 ( 1 m ) × ( n i ) n 1 3 r_{i}=1-\frac{(1-m) \times(n-i)}{n-1} (3)
其中m是最小比例比,它是(0,1]中的值。基于等式中的定义。(3),标度比(即r1,r2,…,rn)的值由两个超参数n和m决定,它们从m线性增加到1。

3.5. Loss Function

对于学习PSENet,损失函数可以表示为:
L = λ L c + ( 1 λ ) L s 4 L=\lambda L_{c}+(1-\lambda) L_{s} (4)
其中Lc和LS分别表示完整文本实例和缩小文本实例的损失,而λ平衡了Lc和LS之间的重要性。

在使用二值交叉熵时,自然图像中的文本实例通常只占据极小的区域,这使得网络预测偏向于非文本区域[3]。受[29]的启发,我们在实验中采用了骰子系数。骰子系数D(Si,Gi)如公式n所示(5):
D ( S i , G i ) = 2 x , y ( S i , x , y × G i , x , y ) x , y S i , x , y 2 + x , y G i , x , y 2 5 D\left(S_{i}, G_{i}\right)=\frac{2 \sum_{x, y}\left(S_{i, x, y} \times G_{i, x, y}\right)}{\sum_{x, y} S_{i, x, y}^{2}+\sum_{x, y} G_{i, x, y}^{2}} (5)
其中Si,x,y和Gi,x,y分别是指分割结果Sii和地面真值Gi中的像素(x,y)的值。

此外,还有许多类似于文本笔画的模式,如栅栏、网格等。因此,我们在训练过程中采用在线硬示例挖掘(OHEM)[34]来更好地区分这些模式。

Lc主要用于分割文本区域和非文本区域。假设OHEM给出的训练掩模为M,则Lc可以表示为等式6。
L c = 1 D ( S n M , G n M ) 6 L_{c}=1-D\left(S_{n} \cdot M, G_{n} \cdot M\right) (6)
Ls是缩小的文本实例的损失。 由于它们被完整文本实例的原始区域包围,因此我们忽略了分割结果Sn中非文本区域的像素,从而避免了某些冗余。 因此,Ls可以表示如下:
L s = 1 i = 1 n 1 D ( S i W , G i W ) n 1 W x , y = { 1 ,  if  S n , x , y 0.5 0 ,  otherwise  7 \begin{aligned} L_{s}=1-& \frac{\sum_{i=1}^{n-1} D\left(S_{i} \cdot W, G_{i} \cdot W\right)}{n-1} \\ W_{x, y}=\left\{\begin{array}{ll} {1,} & {\text { if } S_{n, x, y} \geq 0.5} \\ {0,} & {\text { otherwise }} \end{array}\right. \end{aligned}(7)
这里,W是忽略Sn中的非文本区域的像素的掩码,Sn,x,y指的是Sn中的像素(x,y)的值。

4 Experiment

在本节中,我们首先简要介绍数据集并介绍实现细节。然后,我们对PSENet进行了消融研究。最后,我们在最近四个具有挑战性的公共基准:CTW1500、Total-Text、ICDAR 2015和ICDAR 2017 MLT上对提出的PSENet进行了评估,并将PSENet与最新的方法进行了比较。

4.1. Datasets

CTW1500[24]是由余亮等人构造的一个具有挑战性的长曲线文本检测数据集。[24]。它由1000个训练图像和500个测试图像组成。与传统的文本数据集(如ICDAR 2015、ICDAR 2017 MLT)不同,CTW1500中的文本实例被标注为一个具有14个点的多边形,该多边形可以描述任意曲线文本的形状。

Total-Text[2]是最新发布的用于曲线文本检测的数据集。总文本中包含水平、多方向和曲线文本实例。该基准由1255个训练图像和300个测试图像组成。

ICDAR 2015(IC15)[17]是用于文本检测的常用数据集。它总共包含1500张图片,其中1000张用于培训,其余用于测试。文本区域由四边形的4个顶点进行注释。

ICDAR 2017 MLT(IC17-MLT)[1]是一个大规模的多语言文本数据集,包括7200张训练图像、1800张验证图像和9000张测试图像。数据集由来自9种语言的完整场景图像组成。

4.2. Implementation Details

我们使用在ImageNet[5]上预先培训的ResNet[10]作为我们的主干。所有网络均采用随机梯度下降(SGD)算法进行优化。我们使用7200个IC17-MLT训练图像和1800个IC17-MLT验证图像来训练模型,并在IC17-MLT上报告结果。注意,训练IC17-MLT不采用额外数据,例如SynthText[7]。我们在4个GPU上对PSENet进行了180K迭代的IC17-MLT训练,批处理大小为16。初始学习率设置为1×10−3,在60K和120K迭代时除以10。

其余的数据集采用两种训练策略:(1)从头开始训练。(2)对IC17MLT模型进行微调。在从头开始训练时,我们在4个−上训练批大小为16的PSENET进行36K次迭代,初始学习率设置为1×10 GPU 3,12K和24K迭代时除以10。在IC17MLT模型上进行微调时,迭代次数为24K,12K迭代时初始学习率为1×10−4除以10。

我们使用的重量衰减率为5×10−4,内斯特夫动量[35]为0.99,没有阻尼。我们采用[8]介绍的权重初始化方法。

在训练过程中,我们忽略了所有数据集中标记为无关的模糊文本区域。损失余额的λ设置为0.7.。对训练数据的数据增强如下:1)图像按{0.5,1.0,2.0,3.0}的比例进行随机重缩放;2)图像在[−10◦,10◦]范围内随机水平翻转和旋转;3)从变换后的图像中随机裁剪640×640个样本。对于四边形文本,我们计算最小面积矩形来提取边界框。对于曲线文本数据集,应用PSE的输出来产生最终结果。

4.3. Ablation Study

内核可以用作最终结果吗?内核的目的是大致定位文本实例,并将彼此紧密排列的文本实例分开。但是,最小尺度核函数不能覆盖文本实例的全部区域,不利于文本检测和识别。在图6(A)中,仅使用最小尺度核(虚线曲线)的检测器的F测量在ICDAR 2015和CTW1500数据集上很糟糕。此外,我们使用现代文本识别器CRNN[33]对完整文本实例和内核中的文本进行识别,发现CRNN无法识别内核中的文本(见图2)。因此,该核不能用作最终检测结果。

最小核尺度的影响。我们通过将核数n设为2来研究最小尺度m的影响,并使最小尺度m在1到0.1之间变化。在ICDAR 2015和CTW1500两个数据集上对模型进行了评估。我们可以从图6(A)中发现,当m太大或太小时,测试集上的F-测度会下降。需要注意的是,在设置核尺度1时,我们只使用文本切分映射作为最终结果,没有使用渐进式尺度扩展算法。显然,如果没有PSE,基线的性能就不能令人满意,因为网络无法分隔彼此紧密相连的文本。当m过大时,PSENet很难将彼此相邻的文本实例分开。当m太小时,PSENet经常错误地将整个文本行分割成不同的部分,训练不能很好地收敛。

核数的影响。研究了核数n对PSENet性能的影响。具体地说,我们保持最小尺度m不变,并用不同的核数n训练PSENet,具体来说,我们设置ICDAR 2015的m从0.4开始,CTW1500从0.6开始,n从2增加到10,并在ICDAR 2015和CTW1500数据集上进行了评估。图6(B)显示了实验结果,从中我们可以发现,随着n的增长,测试集上的F-测度不断上升,当n≥5时开始趋于平稳。多核函数的优点是可以准确地重建两个大间距的文本实例,它们位于彼此接近的位置。

中坚力量的影响。更深层次的神经网络已被证明可以提高大规模图像分类和目标检测的性能。为了更好地分析所提出的PSENet的性能,我们采用ResNet作为我们的主干,在{50,101,152}三个不同的深度上进行了测试,并在大规模数据集IC17-MLT上进行了测试。如表1所示,在相同设置下,将主干深度从50提高到152可以明显提高性能,从70.8%提高到72.2%,绝对提高1.4%。
在这里插入图片描述
在这里插入图片描述

4.4. Comparisons with State-of-the-Art Methods

正在检测曲线文本。为了测试曲线文本检测的能力,我们在CTW1500和Total-Text(主要包含曲线文本)上测试了我们的方法。在测试阶段,我们将图像的长边缩放到1280,并使用与[24]相同的评估方法对结果进行评估。我们分别在表2和表3中报告了PSENet在CTW1500和Total-Text上的单尺度性能。请注意,我们仅使用ResNet50作为主干。

在CTW1500上,即使在没有外部数据的情况下,PSENet也超过了所有的同行。值得注意的是,在FMeasure上,PSENet实现的FMeasure(82.2%)比CTD+TLOC高8.8%,比TextSnake高6.6%。据我们所知,这是文献中报道的最好的结果。

在全文本上,PSENet的准确率、召回率和F-Measure分别达到了84.02%、77.96%和80.87%,超过了目前最先进的方法2.47%以上。请注意,在F度量中,我们的PSENet极大地超过了TotalText上的基线40%以上。

在CTW1500和Total-Text上的实验表明,PSENet在处理曲线文本和任意形状的文本时具有明显的优越性。我们还说明了几个具有挑战性的结果,并与图7(D)中最先进的CTD+TLOC[24]进行了一些直观的比较。比较清楚地表明,PSENet能够优雅地区分非常复杂的曲线文本实例,并以令人信服的方式将它们分离。
在这里插入图片描述
检测定向文本。 我们在IC15上评估了拟议的PSENet,以测试其定向文本检测的能力。 仅将ResNet50用作PSENet的主干。在推理期间,我们将输入图像的长边缩放到2240。我们将我们的方法与表4中的其他最新方法进行了比较。 F测度达到85.69%,比现有技术水平高出3%以上。 此外,我们在图7(a)中演示了一些测试示例,并且PSENet可以准确定位具有不同方向的文本实例。

检测多语言文本。为了测试PSENet对多种语言的健壮性,我们在IC17-MLT基准上对PSENet进行了测试。由于数据集的规模很大,为了充分挖掘PSENet的潜力,我们采用了Res50和Res152作为骨干。我们将原始图像放大2倍,所提出的PSENet达到了72.13%的F-测度,比目前最先进的方法绝对提高了5.3%。此外,我们还展示了图7(B)中的一些测试示例,PSENet可以准确地定位多语言的文本实例。这证明了PSENet对于多语言、多方向的检测具有较强的鲁棒性,确实可以部署在复杂的自然场景中。结果如表5所示。

请注意,我们使用高分辨率来测试IC15和IC17-MLT,因为这两个数据集中有太多的小文本。
在这里插入图片描述

4.5. Speed Analyze

如表6所示,PSENet可以快速检测曲线文本实例。采用ResNet50和ResNet18作为主干,兼顾速度和精度。重点分析了PSENet在不同阶段的时间消耗情况。当输出特征图为输入图像的1/1时,PSENet的性能最好,而由于特征图较大,PSE的时间消耗超过总推理时间的一半以上。如果输出特征图的大小为输入图像的1/4,则PSENet的FPS可以从3.9提高到8.4,而性能从82.2%略微下降到79.9%,如表2所示。可以看出,PSE的时间消耗不到总推理时间的1/10。此外,当我们缩放640的长边缘时,FPS进一步提高到22,并且探测器仍具有良好的性能(75.6%)。

当我们使用ResNet 18作为主干时,PSENet的速度几乎是实时的(27FPS),而性能仍然具有竞争力。请注意,PSENet(ResNet18)不使用外部数据进行预训练。结合表2,我们可以发现PSENet在速度和性能上都超过了EAST和CTD+TLOC。

以上所有实验均在CTW1500测试仪上进行了测试。 我们评估所有测试图像并计算平均速度。 我们缩放{1280,960,640}的长边作为输入来测试速度。 表6中的所有结果均通过PyTorch [30]和一个1080Ti GPU进行了测试。

5 Conclusion and Future Work

提出了一种新的渐进尺度扩展网络(PSENet)来成功检测自然场景图像中任意形状的文本实例。该方法通过多个语义分割图将检测区域从小核逐步扩展到大而完整的实例,对形状具有较强的鲁棒性,可以很容易地分离出非常接近甚至部分相交的文本实例。在场景文本检测基准上的实验表明,该方法具有较好的性能。

未来要探索的方向是多方面的。首先,我们将研究扩展算法是否可以与网络端到端一起训练。其次,渐进式尺度扩展算法可以被引入到一般的实例级分割任务中,特别是在对象实例拥挤度较高的基准测试中。我们正在清理我们的代码,并将很快发布它们。

发布了69 篇原创文章 · 获赞 28 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_18315295/article/details/104389467