原文https://arxiv.org/pdf/1801.01315.pdf

摘要(Abstract)

最先进的场景文本检测算法是基于深度学习的方法,它依赖于边界框回归,并执行至少两种预测:文本/非文本分类和位置回归。回归在这些方法中对边界框的获取起着关键作用,但这并不是必不可少的,因为文本/非文本预测也可以看作是一种包含完整位置信息的语义分割。然而,场景图像中的文本实例之间往往距离很近,很难通过语义分割进行分离。因此,需要实例分割来解决这个问题。本文提出了一种基于实例分割的场景文本检测算法PixelLink。文本实例首先通过将相同实例中的像素链接在一起来分割出来。然后直接从分割结果中提取文本边界框,不需要外置回归。实验表明,与基于回归的方法相比,PixelLink可以在多个基准测试上取得更好或可比的性能,同时需要更少的训练迭代和更少的训练数据。

1.介绍(Introduction)

长期以来,无论是在自然场景阅读还是鲁棒性阅读,都引起了人们极大的兴趣(Ye and Doermann 2015)。
它通常分为两个步骤或子任务:文本检测和文本识别。 检测任务也称为定位,它将图像作为输入并输出其中的文本位置。
随着深度学习和通用对象检测技术的发展,提出了越来越精确、高效的场景文本检测算法,如CTPN (Tian) 2016)、TextBoxes (Liao et al. 2017)、SegLink (Shi, Bai, and Belongie 2017)和EAST (Zhou et al. 2017)。这些最先进的方法大多建立在全卷积网络上(Long, Shelhamer, and Darrell 2015),并至少执行两种预测:

  1. 文本和非文本分类。这样的预测可以作为像素在文本边框内的概率(Zhang et al. 2016)。但是它们更常被用作回归结果的可信度(例如,TextBoxes, SegLink, EAST)。
  2. 位置回归。文本实例或它们的段/片的位置被预测为来自引用框(例如,TextBoxes、SegLink、CTPN)或绝对位置的偏移量,边界框的值(例如,EAST)。

在SegLink等方法中,还可以预测片段之间的链接。在这些预测之后,进行后期处理,主要包括将段连接在一起(如SegLink, CTPN)或非最大抑制(如TextBoxes, EAST),得到边界框作为最终输出在SegLink等方法中,还可以预测片段之间的链接。在这些预测之后,进行后期处理,主要包括将段连接在一起(如SegLink, CTPN)或非最大抑制(如TextBoxes, EAST),得到边界框作为最终输出。

位置回归在目标检测和文本检测中有着广泛的应用,并取得了良好的效果。在最先进的方法中,它在文本边框的形成中起着关键作用。但是,如上所述,文本/非文本预测不仅可以作为回归结果的置信度,还可以作为分割分值图,分割分值图本身就包含了位置信息,可以直接获取边界框。因此,回归并不是必不可少的。
然而,如图1所示,场景图像中的文本实例通常非常接近。在这种情况下,它们是非常困难的,有时甚至不可能通过语义分割(即,文本/非文本预测);因此,需要进一步在实例级进行分割
论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation
图1:文本实例通常彼此靠近,很难通过语义分割将它们分开。

为了解决这一问题,本文提出了一种新的场景文本检测算法PixelLink。它直接从实例分割结果中提取文本位置,而不是从边框回归中提取。在PixelLink中,训练深度神经网络(DNN)进行两种像素预测:文本/非文本预测和链接预测。文本实例中的像素被标记为正数(即文本像素),否则则标记为负(即非文本像素)。这里的link的概念是受到SegLink中link设计的启发,但是有很大的区别。每个像素有8个邻域。对于给定的像素及其相邻像素之一,如果它们位于同一个实例中,则它们之间的链接标记为正,否则标记为负。预测的正像素通过预测的正链接连接在一起成为连接组件(CC)。实例分割是通过这种方式实现的,每个连接组件(CC)代表一个检测到的文本。可以使用OpenCV (Its 2014)中的minAreaRect等方法获取连接组件的边框作为最终检测结果。 我们的实验证明了PixelLink相对于最先进的基于回归的方法的优势。具体地说,从头开始训练,PixelLink模型可以在几个基准测试上达到可比或更好的性能,同时需要更少的训练迭代和更少的训练数据。

2 相关工作(Related Work)

2.1 语义&实例分割

分割任务是为图像分配像素位置的标签。当只考虑对象类别时,称为语义分割。该任务的主要方法通常采用完全卷积网络(FCN)的方法(Long, Shelhamer, and Darrell 2015)。实例分割比语义分割更具挑战性,因为它不仅需要每个像素的对象类别,而且需要实例的区分。它比语义分割更适用于一般的对象检测,因为它可以识别对象实例。这一领域的最新方法大量使用了目标检测系统。FCIS (Liet al. 2016)在R-FCN中扩展了位置敏感预测的概念(Dai et al. 2016)。Mask R-CNN (He et al. 2017a)将quick R-CNN (Ren et al. 2015)中的roipoling改为RoIAlign。它们都在同一个深度模型中进行检测和分割,分割结果高度依赖于检测性能。
(个人理解为实例分割是检测和分割每个目标实例和语义分割是为每个像素分配一个类标签)

2.2基于分割的文本检测

分割在文本检测中已经应用了很长时间。(Yao et al. 2016)将检测任务定位为语义分割问题,通过预测三种得分地图:文本/非文本、字符类和字符链接方向。然后它们被分成单词或行。在(Zhang et al. 2016)中,从FCN预测的显著性映射中发现文本块,使用MSER (Donoser and Bischof 2006)提取字符候选项。最后用手工规则形成线条或文字。在CCTN (He et al. 2016)中,通过生成文本区域热图,利用粗糙网络粗略检测文本区域,然后通过精细文本网络将检测到的区域细化为文本行,输出中心线区域热图和文本行区域热图。这些方法往往存在耗时的后处理步骤和性能不理想的问题。

2.3基于回归的文本检测

这类方法大多利用了一般对象检测技术的发展。CTPN (Tian et al.2016)将锚点思想扩展到对象检测中,预测文本片,然后通过启发式规则将文本片连接起来。TextBoxes (Liao et al. 2017)是一种特定于文本的SSD (Liu et al. 2016),它采用了大长宽比的锚点和不规则形状的内核,以适应场景文本的大长宽比的特征。RRPN (Ma et al. 2017)在Faster R-CNN中增加了锚点和roipoling的旋转,以处理场景文本的方向。SegLink (Shi, Bai, and Belongie 2017)采用SSD预测文本片段,利用连接预测将文本片段链接成完整的实例。EAST (Zhou et al. 2017)使用具有位置意识的NMS(非最大值抑制)进行非常密集的预测。所有这些基于回归的文本检测算法都可以同时对置信度和位置进行预测。
在本文中,最先进的方法主要是指在IC13 (Karatzas et al. 2013)或IC15 (Karatzas et al. 2015)上表现最好的已发表方法,包括文本框、CTPN、SegLink和EAST。

3通过实例分割检测文本

如图2所示,PixelLink通过实例分割检测文本,预测的正像素通过预测的负链接加入到文本实例中。然后直接从分割结果中提取边界框。

论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation
图2:PixelLink的体系结构。训练CNN模型进行两种像素预测:文本/非文本预测和链接预测。经过阈值处理后,正像素通过正链接连接在一起,实现实例分割。然后应用minAreaRect直接从分割结果中提取边界框。噪声预测可以有效地去除后滤波。为了更好地说明,这里给出了一个输入示例。虚线框中的8张热图代表8个方向的链路预测。虽然有些词在文本/非文本预测中很难区分,但通过链接预测是可以区分的。

3.1网络体系结构

继SSD和SegLink之后,使用VGG16 (Simonyan and Zisserman 2014)作为特征提取器,各层完全连接,即, fc6和fc7,被转换成卷积层。特征融合和像素级预测的流行源自(Long, Shelhamer, and Darrell 2015)。如图3所示,整个模型有两个独立的header,一个用于文本/非文本预测,另一个用于连接预测。两者都使用Softmax,因此它们的输出分别有12=2和82=16个通道。
实现特征融合层的两种设置:fconv2 2、conv3 3、conv4 3、conv5 3、fc 7g, fconv3 3、conv4 3、conv5 3、fc 7g,分别为PixelLink+VGG16 2s、PixelLink+VGG16 4s。2s预测的分辨率是原始图像的一半,4s是四分之一。

论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation
图3:图3 PixelLink+VGG16 2s的结构。fc6和fc7被转换成卷积层。上采样操作直接通过双线性插值完成。通过级联的上采样和添加操作融合不同阶段的特征图。除了pool5之外,所有池层层stride=2,pool5的stride=1。因此,fc7的大小与conv5_3相同,这两层的score相加时不需要上采样。'conv 11, 2(16)’ 表示包含2或16个核的11卷积层,分别用于文本/非文本预测或链接预测。

3.2像素连接

给定对像素和连接的预测,可以分别对它们应用两个不同的阈值。然后使用正连接将正像素分组在一起,形成连接组件集合,每个表示一个检测到的文本实例。实现了实例分割。值得注意的是,给定两个相邻的正像素,它们的连接都是由它们预测的,当其中一个或两个连接预测是正的时候它们应该连接。这个连接过程可以使用分离集数据结构来实现。

3.3边框提取

实际上,检测任务是在实例分割后完成的。然而,在IC13 (Karatzas et al. 2013)、IC15 (Karatzas et al. 2015)和COCO-Text (Veit et al. 2016)等挑战中,检测结果需要使用边界框。因此,通过OpenCV(2014)中的minAreaRect等方法提取连接组建的边界框。minAreaRect的输出是一个有方向的矩形,可以很容易的转换为IC15的四边形,或者IC13的矩形。值得一提的是,PixelLink对场景文本的方向没有限制。
这一步引出了PixelLink和基于回归的方法之间的关键区别:边界框是直接从实例分割而不是位置回归得到的

3.4分割后的Post滤波

由于PixelLink试图通过链接将像素分组在一起,因此不可避免地会出现一些噪声预测,因此需要进行后置滤波步骤。一个简单而有效的解决方案是通过检测到boxs的简单几何特征进行过滤,例如,宽度、高度、面积和长宽比等。例如,in Sec. 5.3的IC15实验中,如果检测到的box的短边小于10像素或者面积小于300,则放弃检测到的boxs。10和300是IC15训练数据的统计结果。具体来说,对于选定的过滤条件,选取训练集上计算得到的对应的第99百分位作为阈值。例如,再次。选择10作为边长较短的阈值,因为IC15-train中大约99%的文本实例的较短边长大于等于10像素。

4 最优化(Optimization)

4.1地面真值计算

按照文本块中的公式(Zhang et al. 2016),文本边框内的像素标记为正。如果存在重叠,则只有未重叠的像素为正。否则负。对于给定像素及其八个相邻像素之一,如果它们属于同一个实例,则它们之间的连接为正。否则负。注意,地面真值计算是对调整为预测层形状的输入图像进行的,即4的是conv3 3 2s的是conv2 2。

4.2损失函数

训练损失是像素损失和链接损失的加权和:
论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation

由于Llink只计算正像素,所以像素的分类任务比link的分类任务更重要,所以λ\lambda 在所有实验中都设置为2.0。

文本实例在像素大小的损失可能会变化很大。例如,在图1中,“Manchester”的面积大于所有其他单词的面积之和。在计算损失时,如果我们对所有正像素都使用相同的权重,这对面积较小的实例是不公平的,可能会影响性能。为了解决这一问题,对于分割提出了一种新的加权损失——实例平衡交叉熵损失(Instance-Balanced Cross-Entropy Loss)。具体地说,对于具有N个文本实例的给定图像,通过给每个实例相同的权重,所有实例被平等地对待,如公式2中的Bi所示。对于面积=Si的第i个实例,其中每个正像素的权值为
论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation
论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation
Online Hard Example Mining (OHEM) (Shrivastava, Gupta, and Girshick 2016)用于选择负像素。更具体地说,选择最大损失的 r*S 负像素,通过设置它们的权重给ones(注:不理解这里),r为负-正比,通常设置为3。

以上两种机制产生了一个权值矩阵,用W表示,所有的正像素和所选的负像素。领域像素任务的损失函数为
论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation

其中L price_CE为文本和非文本预测的交叉熵损失矩阵

因此,小实例中的像素具有较高的权重,而大实例中的像素具有较小的权重。然而,每个实例对损失函数的贡献相同

链接的损失:

正链接和负链接的损失分别计算,并仅在正像素
论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation
L link_CE是链接预测的交叉熵损失矩阵
W pos_link是正链接的权重 W neg_link 是负链接的权重
他们由公式3的W中计算得到
详细的,对于第k个相邻像素(i,j)
论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation
Ylink是链接的标签矩阵

链路预测损失是一种类平衡交叉熵损失:
论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation
其中rsum表示reduce sum,,将张量的所有元素求和成标量。

4.3 数据增强

数据增强的方法与SSD类似,只是多了一个随机旋转步骤。首先将输入图像以0.2的概率旋转,随机角度为0,90度,180度,270度,与(He et al. 2017b)相同。然后用0.1到1之间的面积和0.5到2之间的高宽比随机剪裁它们。最后,统一调整大小为512*512。增强后,短边小于10像素的文本实例将被忽略。剩下的文本实例中小于20%的也将被忽略。在计算损失时,忽略实例的权重设置为零。

5 实验(Experiments)

PixelLink模型经过多个基准的训练和评估,取得了与最先进的方法相同或更好的结果,表明没有边界框回归,文本定位任务可以被很好地解决。部分检测结果如图4所示。
论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation

5.1 基准数据集

ICDAR2015(IC15)

IC15的Challenge 4 (Karatzas et al. 2015)是检测任意方向场景文本最常用的基准。它由两组组成:训练和测试,分别包含1000和500张图像。与之前ICDAR的挑战不同,图像是使用Google Glass获取的,不需要考虑视点、位置或帧质量。只关心长度超过3个字符的可读拉丁语文字才会被标注为四边形。‘do not care’(不关心)脚本也有注释,但是在求值时被忽略。

ICDAR2013(IC13)

IC13 (Karatzas et al. 2013)是另一个被广泛使用的场景文本检测基准,包含
训练图片229张,测试图片233张。这个数据集中的文本实例大多是水平的,单词被标注为矩形

MSRA-TD500(TD500)

TD500中的文本(Yao et al. 2012)也是任意方向的,但比IC15中的文本要长得多,因为它们是用行注释的。TD500总共包含500张图片,300张用于培训,200张用于测试。中英文都有。
采用相应的标准评价方案。

5.2实现细节

PixelLink模型采用momentum=0.9 weight decay=0.0005 的SGD(随机最速下降法) 进行优化

不是ImageNet预训练模型的微调,VGG网络是通过xavier方法(Glorot和Bengio 2010)随机的初始化。前100次迭代Learning rate(学习率)=0.001 ,剩下的Learning rate(学习率)=0.01,详情将在每个单独的实验中描述。

整个算法在Tensorflow 1.1.0和纯Python环境中实现,与代码的连接操作在Sec3.2中描述,用Cython编译。在3个gpu (GTX Titan X)上 batch size=24,一次迭代大约需要0.65秒,整个训练过程大约需要7~8个小时。**128G RAM和两个Intel Xeon cpu (2.20GHz)**可在进行实验的机器上使用。

5.3 在IC15上检测带方向文本

训练从一个随机初始化的VGG16模型开始,只在ic15上训练。4s模型需要约40K次的迭代训练,2s较长,约60K次迭代。

论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation

表格1:IC15上的结果。“R, P, F”代表召回率,准确率和F值。所有列出的方法都在720P或类似1280*768下进行测试。’——'意味着未报道。'MS’代表多尺度。PixelLink+VGG16 2s和4s分别在conv2_2和conv3_3预测。PVANET2x是PVANET (Kim et al. 2016)的一个改进版本,它将通道增加了一倍。所有列出的比较结果都引用了相应的原始论文。

后滤波采用最短边长和最小面积,分别设置为10和300,相应的ic15的第99百分位通过忽略“不关心”实例进行训练。通过网格搜索找到像素和链接的阈值,设置为(0.8,0.8)。在测试中,输入图像的大小调整为1280*768。结果如表1所示。
PixelLink在IC15上的最佳性能比现有的最佳的单尺度方法(EAST+PVA2x)在F值上要好5.5%。进一步检验PixelLink的泛化能力,同样的2s模型没有进行任何微调也在COCO-Text评价集上进行了测试,召回率、准确率和F值分别为35.4、54.0、42.4,超过了EAST的32.4、50.4、39.5 (Zhou et al. 2017)。
对于实现细节和运行环境的差异,进行客观公正的速度比较并不是一件容易的事情。这里报告的速度只是为了表明,PixelLink与基于回归的最先进的方法相比并不慢。如果深度模型相同 VGG16,被用于基础网络。注意到虽然EAST+PVANET2x运行速度最快,但它的精度远低于PixelLink模型。

5.4 在TD500上检测长文本

由于在TD500中可以检测到行,因此IC15上的最终模型不用于微调。相反,该模型在IC15-train上进行了大约15000次迭代的预训练,在TD500-train + HUST-TR400 (Yao, Bai, and Liu 2014)上微调,进行了大约25000迭代。为了测试,将图像的大小调整为768*768。像素和链接的阈值设置为(0.8,0.7)。后滤波的最小短边为15,最小面积为600,为训练集的第99百分位。
由表2可知,在所有基于vgg16的模型中,EAST对大的接受域的需求最大,表现最差。SegLink和PixelLink都不需要更深层次的网络来检测长文本,因为它们对接受域的需求较小。
论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation

5.5 在IC13上检测水平方向文本

IC15的最终模型在IC13-train、TD500-train和TR400上进行了微调,大约进行了10000次的迭代。在单尺度测试中,所有图像都被调整为512*512。多尺度包括(384,384)、(512,512)、(768,384)、(384,768)、(768,768)和1600的最大长边。像素和链接用于单尺度测试的阈值分别为(0.7,0.5)和(0.6,0.5),用于多尺度测试为(0.6,0.5)。对于后过滤,第99百分位较短的边为10,面积为300。

PixelLink不同于EAST和TextBoxes等基于回归的方法,PixelLink对每个检测到的边界框都没有直接的输出作为置信度,因此它的多尺度测试方案是专门设计的。特别的,将不同尺度的预测图统一调整为所有地图中最大高度和最大宽度。然后,取平均值来融合它们。其余步骤与单尺度测试相同。
表3的结果显示,多尺度导致F-score提高约4 - 5个点,与TextBoxes观察结果相似。
论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation

6 分析和讨论(Analysis and Discussion)

6.1 PixelLink的优势

对IC15实验结果的进一步分析表明,PixelLink作为一种基于分割的方法,相对于基于回归的方法有很多优点。如表4所示,在所有使用VGGNet的方法中,PixelLink可以用更少的数据以更快的速度进行训练,并且比其他方法表现得更好。具体地说,在大约25000次迭代的训练之后(少于EAST或SegLink所需的一半),PixelLink可以达到与SegLink或EAST同等的性能。请记住,PixelLink是从头开始训练的,而其他的需要从ImageNet预训练模型进行微调。同样从零开始在ic15训练,SegLink只能达到F值 67.81

论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation
问题是,** 为什么PixelLink可以用更少的训练迭代和更少的训练数据来获得更好的性能**?我们人类善于学习如何解决问题。问题越简单,我们学习的速度就越快,所需的学习操劳就越少,我们的行为也就越好。它也适用于深度学习模型。因此,可能有两个因素在起作用。

  • 接受域的要求:当采用VGG16为骨干,在长文本检测方面SegLink表现比EAST好,如表2所示。这种差距应该是由于他们对接受域的不同要求造成的。EAST的预测神经元被训练去观察整个图像,以预测任意长度的文本。SegLink虽然也基于回归,但其深度的模型仅尝试预测文本的片段,因此对接受域的要求不如EAST。

  • 任务的困难性:在基于回归的方法中,边界框是制定为四边形或旋转的长方形。每个预测神经元都必须学会以精确的数值来预测它们的位置,即四个顶点的坐标,或中心点、宽度、高度和旋转角度。这是可能和有效的,因为已经被证明的算法,如Faster R-CNN,SSD, YOLO等。然而,这种预测远非直观和简单,神经元必须努力学习才能胜任它们的任务。

对于PixelLink,预测层的神经元只需要在特征图(feature map.)上观察自身和相邻像素的状态。换句话说,PixelLink对接受域的要求最低,在列出的方法中,对神经元的学习任务最简单。

从上面的假设中可以得到一个设计深度模型的有用指南:如果可能的话,简化深度模型的任务,因为这可能使它们得到更快的训练,减少数据消耗

**PixelLink的成功源于用非常有限的数据从头开始训练也显示出文本检测比一般的对象检测要简单得多。**文本检测可能更多地依赖于低层纹理特征,较少地依赖于高层语义特征。

6.2 模型分析(Model Analysis)

如表5所示,为了分析PixelLink模型已经进行了消融实验。PixelLink+VGG16 2s模型虽然性能较好,但与4s相比速度较慢,实用性较差,因此选择 Exp.1 最佳4s模型作为用于对比的基本设置。
论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation

  • 链接是非常重要的。在Exp.2中,通过将链接上的阈值设置为0使得链接不能使用,从而导致一个召回率和精确度的巨大下降。链接的设计很重要,因为它将语义分割转换为实例分割,这对于分离PixelLink中邻近文本是必不可少的
  • 实例平衡有助于更好的模型。在Exp.3中,没有使用Instance-Balance(实例平衡 IB ),在计算loss时将所有正像素的权重设置为相同。即使没有IB,
    PixelLink也可以达到81.2的F值,表现优于最先进的技术。当使用IB时,可以得到稍好一点的模型。继续在IC13上进行实验,性能差距更加明显(如表6所示)。
    论文阅读 PixelLink: Detecting Scene Text via Instance Segmentation

训练图像大小很重要 在Exp4中,为了进行训练,图像的大小被调整为384 384,使得召回率和准确率都明显下降。这种现象与SSD是一致的。
后过滤是至关重要的在Exp.5中,删除了后过滤,导致召回率略有提高,但精度明显下降。
在更高分辨率下预测更准确,但速度较慢。在Exp.6中,预测是在conv2_2上进行的,并且以速度为代价提高了wrt的召回率和准确性。如表1所示。2s的速度小于4s的一半,说明性能和速度之间存在权衡。

7 结论和未来工作(Conclusion and Future Work)

本文提出了一种新的文本检测算法PixelLink。通过将相同文本实例中的像素链接在一起的实例分割实现检测任务。检测到的文本的边框直接从分割结果中提取,不需要进行位置回归。由于需要更小的接受域和更容易学习的任务,PixelLink可以在更少的迭代中使用更少的数据从头开始训练,同时在几个基准测试中比基于位置回归的最先进的方法达到平均水平或更好的性能。
为了便于比较,本文选择VGG16作为主干。为了获得更好的性能和更高的速度,还将研究其他一些深度模型。
与当前流行的实例分割方法(Li et al. 2016) (He et al. 2017a)不同,PixelLink的分割结果并不依赖于检测性能。PixelLink的应用将在其他一些需要实例分割的任务上进行探索。

致谢 引用省略

相关文章: