论文全名为——
TextContourNet:a Flexible and Effective Framework for Improving Scene Text Detection Architecture with a Multi-task Cascade
摘要:该文章研究了从图片中提取文本信息那个红框框,并用这个文本框框去帮助更好的识别文字。作者提出了一个有效的框架,并通过实验证明了两点,一是CNN(卷积神经网络)可以有效的用来从自然场景图片中提取等高文本框;二是被提取出来的文本框信息可以被用来辅助文本识别。作者提出了两种方法,来学习自然场景中的文本框信息,作为辅助任务,和多任务级联。作者在不同的标准下进行了大量的实验,来证明这个设计提高了在自然场景中识别文本和多任务级联的效果。
介绍:
自然场景文本识别受到了包括学术界和工业界的极大关注,通常在端到端的场景中,文本检测首先会检测出每个词语在图片中的位置,然后一个训练好的识别器会读取每个文本中的单词。在这样的一个系统里,文本检测通常是有瓶颈的,很多研究都致力于提高其表现。
随着最近的研究工作,《PixelLink:Detecting scene text via instance segmentation》,我们将场景文本检测方法分为三类:(1)基于区域的场景文本检测,它使用最先进的目标检测算法去做分类和回归每个可能的区域建议位置。(2)基于回归的场景文本检测,该方法与默认边界框的相对回归不同的是,它通常是直接在每个输出像素位置上进行回归分析,一个文本-非文本分类图也需要删除背景非文本区域。(3)基于分割的场景文本检测,该方法在第一阶段提取文本块,再使用低级方法获取每个单独的文本实例。
由于复杂的后处理和基于分段的方法引起的错误,最近的大部分方法是遵循直接回归设计的方法或基于区域建议的方法。这两种类型的算法和场景文本识别器相结合,在多方位场景文本检测以及最先进的端对端中的表现方面都取得了突破。
然而,这两种类型的方法都有他们的缺点。(1)基于区域建议的算法在覆盖多方向的文本边界框方面通常精度不高;(2)基于回归的算法,尽管它可以去精确地覆盖定位边界框,但当文本有很大的比例差异时,由于每个方法都是由单个输出像素生成的,所以在重新显示上有困难。通常,多尺度测试是必要的。
最近,《 Single shot text detector with regional attention》一文建议共同学习一种抑制背景干扰的文本注意力图,以达到更好的单词级别的文本区域建议。这个文本注意力图本质上是一个文本-非文本分割,可以用作消除背景噪音的掩码。这可以看做是一种基于语义划分的方法,用于帮助文本建议生成。这样的组合也获得了更好的性能。
在其他的研究中,学习轮廓检测也是非常流行的。不同于规律的边缘检测,学习轮廓信息提供提供了更多实例级的语义信息。
受到这两项工作的启发,我们也采用了这个主意,使用一个更简单的任务去支持场景文本检测任务,然而,不同于使用语义文本-非文本分割掩码来抑制背景干扰,我们建议去学习直接编码文本信息轮廓图,以便更好地帮助文本检测任务。
总的来说,我们的贡献是:
(1)我们介绍了场景文本的实例级轮廓分割;对于一般轮廓检测,这可以看做是边缘的保持实例级语义含义的子集。对于场景文本,我们建议一个单词的轮廓最好是封装那个单词的多边形,而不是每个字母的精确边。
(2)我们通过实验证明了这样实例级的轮廓特征,更容易被传统的编码-解码 CNN网络学习到;不同于在自然场景图片中轮廓需要更多的人力来进行标注,我们的场景文本轮廓只需要原始边界框注释。
(3)我们提议用学习到的边界轮廓分割方法去支持场景文本检测;轮廓图提供了额外的实例级语义信息,相比于由文本-非文本注意力图提供的实例不可知的语义信息,其可以更好的支持检测任务。它也比常规文本检测任务更容易学习,这意味着我们遵循通用的设计原则,使用更简单的任务来帮助更艰巨的任务。
(4)我们提出了两种通用设计来合并轮廓任务:轮廓作为辅助损失,以及轮廓作为多任务级联。在这两个框架下对公共数据集进行了广泛的实验,并进行了不同的模型配置,以说明这两个框架设计都提高了最先进的场景文本检测器的性能。
相关工作:
1. 场景文本检测
场景文本检测在计算机视觉领域早已经是一个热点问题了。有通过基于低级建议方法的手动特征进行简单滑窗方法。这些早期的方法仅能检测出水平场景文本。
最近的方法在更大程度上采用了深度学习方法,深度学习被广泛认为在多方向场景文本检测上取得了较大突破。Jiang建议采用更快的R-CNN的设计来实现四边形单词的边界框定位。每个定位边界框预测了两个角和它的短边的长度。这属于基于提议的文本检测器的类别,最后的框框从默认定位点回归。他同样采用了基于文本的方案,但建议使用文本-非文本注意力图作为特征,消除不相关的背景干扰。
Zhou建议用既有效又简单的基于直接回归的方法。这种方法使用一个传统的编码-解码器设计,每个预测的输出位置包括文本-非文本分类和到四条边界框的角度及距离。这样一个基于回归的框架也被He采用了,都在场景文本检测定位上取得了较好的效果。
2.轮廓线检测
轮廓检测最开始是被用来在保留了语义含义的自然场景图片中提取边缘的,通常在训练基于学习的模型去定位图片时还需要一些额外的努力。例如,Yang提议去使用密集CRF(条件随机场)去改善注释,以便获得可培训的注释。
之前在轮廓检测上的研究都是用学习的轮廓来表示建议区域。然而,我们这里采取了进一步的处理,使用学习到的轮廓检测直接作为特征来帮助场景文本检测。
这个文本轮廓检测方法的独特之处在于:(1)这个轮廓不是一系列图像边缘的集合而是每一个文本实例的边界框,(2)不需要额外的标注,从而使得现在的的框架更易于实现。
文本轮廓:
(1)定义:与之前大部分文献中对轮廓线的定义不同的是,《 Multiscale multi-task fcn for semantic page segmentation and table detection》一文提出去学习PDF文档中的文本,表格和图片的轮廓线。轮廓线不能与任何低维的图片边缘匹配,造成了文本轮廓成为了独特的学习任务。我们在这里也采用了同样的观点,定义场景文本轮廓为近似于每个实例边界的多边形。该多边形可以是四边形,也可以是八边形,形状取决于我们希望学习和标注的那个数据集它所提供的标注。图2提供了几个显示出的文本轮廓的例子,取决于不同数据集的标注信息,不同的轮廓都是可用的。
很容易发现,如果设置边界框为四边形,轮廓可以很容易地从大多数数据集的标注中获得。在这项研究工作中,我们设置边界框为四边形,通过实验证明这样训练出来的模型可以有效的帮助文本检测任务。
(2)学习去提取边界
为了去学习分割文本边界框,我们设计了一个编码-解码结构的CNN网络,它有着多尺度特性学习的跳跃链接。这将是我们轮廓检测网络的基础架构。Sigmoid函数被用在卷积层,我们使用MSE(平方差)作为损失函数来训练网络,这个损失值我们用Lcontour来表示。
-
Ground Truth Generation——为了去训练能检测自然场景文本框的网络,我们需要去提供正确的标注数据,即使没有捕捉到最珍贵的场景文本的边界,一个被训练好的模型仍然应该给出一个好的预测结果。因为标注正确的四边形边界框信息的缺失,我们参考He在《 Multiscale multi-task fcn for semantic page segmentation and table detection》一文中的研究,生成一个平滑的边界用于训练。通常,我们使用公式1来生成边界框。
Scontour 表示基于正确标注生成的边界框像内的像素。回归目标的值主要是以经验来选取的。这个方法来预测边界轮廓,距离与正确标注相近的像素点不会受到很大惩罚。
-
Learnability——我们认为,即使边界分割任务需要去学习实例信息,与学习一个回归检测任务相比,还是比较简单的。这个主要的原因是这个网络只需要去学习哪些像素点,从非文本背景中分离文本信息,或者分离两个文本实例(如果它们隔得比较近)。这种方法暗自学习了实例信息,而不需要全局信息。这是因为即使在看局部区域的时候,这个方法仍然能够去识别是否是边界,这是与基于回归的场景文本检测不同,因为它需要去确定到文本实例边界或拐角的距离。图4证明了这个观点。假设蓝点和红点分别代表了文本检测网络和轮廓检测网络的输出像素,红色和蓝色的圈圈代表他们的接受域。L代表了一个回归目标(距离文本边界的距离)。回想一下,文本检测器必须标识文本实例的边界,以及当前像素离边界有多远。以边界为中心,并且只预测当前的像素是否为文本实例的边界,这要困难得多。在另一方面,如果我们可以提供粗略的边界信息给网络,这个回归任务会变得非常容易去学习。这就是我们为什么使用一个更简单的任务去帮助场景文本检测的主要原因。
文本轮廓检测:
自从我们能够从输入图片中学习到文本轮廓后,我们建议使用它作为场景文本检测的一个附加任务。我们描述这两个提出用于场景文本轮廓检测的框架,还有我们在这个工作中采用的场景文本检测器。我们主要的两个总体框架是:(1)使用轮廓分割作为一个子任务,联合训练网络,这个我们称之为“Auxiliary TextContourNet”(辅助文本轮廓网络)。(2)使用学习到的轮廓作为特征,以级联的方式,进行场景文本检测。这个我们称之为“Cascade TextContourNet”(级联式文本轮廓网络)。
1. Auxiliary TextContourNet(下文简称ATCN网络)
这个ATCN网络的框架如下图5所示:
该网络采用了基础的编码-解码器设计,还有几层卷积共享层。请注意,在框架的说明中,由于空间的限制,只有编码器的卷积层被共享。在我们的实验中,我们探索了两种不同的卷积层共享的设计方案。
2. “Cascade TextContourNet”(级联式文本轮廓网络)
轮廓线也可以被用在级联式网络中。与以前将语义文本-非文本分割映射作为一个掩码的工作不同的是,这个网络框架将显式学习到的轮廓作为另一个特征层,让网络共同学习从原始图像中提取的视觉特征以及轮廓预测图。
我们相信,这种网络框架有几个优点:(1)应用语义的文本-非文本特征作为掩码,使得从分割任务中恢复错误变得很困难,反过来,我们从轮廓线和提取的视觉特征中共同学习,由于轮廓网络造成的错误并不一定会导致错误的检测结果。(2)这个文本-非文本预测对于很多场景文本检测来说,是一个常规的任务,将其作为子任务使用将对这些检测器没有任何好处。(3)文本-非文本分割仅提供分割信息,但轮廓线分割提供提供实例级的分割信息,能够在早期网络中提供实例级信息使得这个网络学习如何更容易、更准确地提出一个实例边界框。
这同样符合我们通用的设计原则——使用一个简单的任务去支持复杂的任务,前面的工作同样使用这样的想法去训练深层模型。这样一个级联式设计也被其他工作所采用的。
在我们的任务里,这两个设置都可以被采用,我们通过实验展示了,通过明确学习去分割轮廓线,并使用它作为特征喂给检测器,检测器可以表现得比单纯使用轮廓检测作为辅助损失函数要更简单。
为了使用轮廓线分割输出作为特征,我们提出了两种框架:(1)早期合并:将提取的轮廓信息合并到早期的编码器阶段;(2)晚期合并:将提取的轮廓信息合并到最后的解码阶段。图6展示了所提出的的模型的可视化。要注意一点,在早期合并,自从我们需要重新计算编码器的特性而网络的输入是一个4通道张量,对检测任务和轮廓分割任务不共享卷积特性。
场景文本检测
我们采用这个工作《 East:An efficient and accurate scene text detector》作为我们的基础检测器设计,这是最具代表性的以场景文本检测模型为基础的回归之一,这里我们给出了一个简要的关于此方法的描述。
给定一张高为Ih,宽为Iw的图片I,使用一个编码器-解码器的网络,以高度Sh和宽度Sw来分别产生M个输出通道。M的值取决于模型训练出来所预测的不同几何形状。在传统的论文以及我们在这里使用的RBOX场景中都建议使用两个几何形状。(名词注解:RBOX--rotated box,旋转边框;QUAD--quadrangle,四边形)
在RBOX中,为每个输出的像素位置都预测了一个旋转的边界框。这里共有6个输出特征图,第一个通道是每个像素点的得分值,取值范围为[0,1]。这符合每个位置是否是文本的置信度。值得注意的是,这同样是基于直接回归的方法和基于区域建议的方法之间的一个主要差异。基于区域建议的方法,每一输出位置的类别取决于预测框与正确标注边框的重合区域的大小,即(IOU)分数。这里的类仅仅取决于每个像素是否属于文本区域。要注意的一点是,在产生得分特征图之前,正确标注的边界框会收缩以便更好的分离临近的单词。Dice loss(我觉得应该翻译为:随机损失)用来训练the score map(得分图),可以直接优化分割结果的IOU值。我们在公式3中用Lscore来表示这个损失。表示正确的得分图,
是预测的得分图,β是正例和反例所占权重。
另一个输出通道与预测边界框的几何信息有联系。对于每个正确的类别的RBOX框架来说,它到旋转边界框4个边界的距离被用作正确标注,而且由于它对对象规模是不变的,这样不同的文本尺度就会有相同的贡献,所以用IOU损失用作计算损失函数,表示为LIOU。词的方向角被当做另一个目标,他的损失函数表示为
,在这之中,
是正确标注的方向角。
就像这样,5个通道将会被预测总体的几何形状损失,表示为,总体的训练损失函数表示为
,它是
和的加权之和,在公式3中可以看出。更多细节可以在原论文中找到。(原论文是:《 East:An efficient and accurate scene text detector》)
联合训练
通过将边界框检测和场景文本检测结合起来,整个框架的损失函数被定义为公式(4)所示,在我们的实验中,β设为0.1,设为0.01。
实验:
该算法的实现是基于TensorFlow框架的,基础方法是基于EAST那篇论文的算法实现的,EAST这篇论文是原始模型的改进版本,有着更好的表现效果。在训练过程中增加的数据与SSD那篇文章(《 Ssd: Single shot multibox detector》)中的随机裁剪和缩放相似,训练过程包括两个步骤:(1)训练所有扩充的图片,图片的尺寸均为512×512,(2)用768×768的图像对训练有素的模型进行微调。
所有模型如非特殊说明,均有一个CNN主干的Resnet50和一个功能金字塔设计。输出分辨率是输入图像分辨率的¼。CNN的主干部分是用预先训练的模型初始化的。对于辅助TextContourNet网络框架,我们实现了两个版本,(1)只有CNN编码器部分被共享(AuxiliaryContourNet1);(2)CNN的编码器和解码器部分都被共享(AuxiliaryContourNet2)。AuxiliaryContourNet2与基础模型的唯一区别就在于产生了一个额外的输出,被训练来分割边界线。对 Cascade TextContourNet,我们设计了与这两个方案相对应的两个模型:(1)早期合并:我们调整大小并将输出轮廓连接到输入。( CascadeContourNet1)(2)晚期合并:我们将输出轮廓与检测器分支中的最后一层连接在深度维度上。然后在生成最终检测输出之前,添加了深度32、内核大小为3 3的卷积层(CascadeContourNet2)。
数据集描述
为了证明拟议框架的有效性,我们研究了接下来讨论的各种数据集。
合成文本
由代码生成的合成数据。要呈现的文本是从单词字典中统一选择的。我们生成了108K图像用于训练(SynthTrain)和7K用于测试(SynthTest)。
ICDAR2013
聚焦场景文本检测数据集。它分别包含229和233个训练和测试图像。所有的文本都是水平的或接近水平的。水平的矩形被标注为图像中的每个单词。我们将培训集和测试集表示为和
。
ICDAR2015
附带场景文本检测数据集。里面包括了1000张训练图片和500张训练图片,表示为和
。图像是用带有运动模糊的便携设备拍摄的。图片带有多方向文本的四边形注释。
ICDAR2013和ICDAR2015两个数据集都是被广泛使用在相对精确的四边形注释中。在我们的实验设置中,它们用于证明:只要有一个 精确的四边形注释,我们的模型就可以提高提高基础性能。
UberText
这是一个新发布的数据集,是从街景拍摄的照片。这里面包括了IK和4K分辨率的图片,拆开来分别用于训练,测试和验证。我们使用1K的版本在我们的实验中,它包括了16927张训练图片和10157张测试图片。据我们所知,这是目前最大的带有边界框注释的场景文本数据集。然而,它也有它的小缺点,有一些注释是不一致的(例如:有时边界框是为每个单词的,而有时是一行),而且不够准确(例如:曲线数据)。在补充材料里,我们将会展示一些这个数据集里注释的例子。这个训练集和测试集分别用和
来表示。
定量实验
(1)能力研究
在这个研究中,我们证明了我们提出来这个模型的能力通过训练这几个数据集,测试用
数据集。这个小研究的目的是,通过精确的注释来显示轮廓任务可以极大地提高模型的容量。 随着更多的数据有可能在工业中应用,容量是很重要的。结果在表1中。
我们可以看见,将轮廓添加为辅助任务,可以使f值提高大约4个,同时,将其添加为级联任务可以通过延迟合并机制将其提高到7。我们同样观察到,在早期合并级联模型中,模型的表现反而下降了。我们认为这是因为,其学习到的轮廓图是高度语义的,当我们 将其与原始输入的图像结合是,网络就无法学习好的特性。在以后的实验中我们使用所有的晚期合并进行比较。
Base 101代表了用Resnet101培训的模型。它也从一个预先训练的模型中初始化,我们可以看出,即使有一个更深的网络,网络的容量几乎保持不变。
所有接下来的研究都对应一个常规实验环境(设置)。它们也可以看做是评估所提出的网络框架的可概括性。
(2)ICDAR2013
(3)ICDAR2015
(4)UberText
UberText文本还包含了多边形注释。这里我们简单地为培训和测试安装一个最小的矩形。对于其他基线方法,我们基于Google对象检测api,并在等式5中修改回归方案,实现了更快的RCNN。
一致性
场景文本检测通常是根据IOU阈值0.5来评估和比较的。然而,当将其与场景文本阅读器合并时,这样的IOU阈值可能无法反映模型的实际性能。这是因为我们为了 去正确的读取出文本,需要更高的IOU值。这样的一个思想在这篇论文《Pixellink: Detecting scene text via instance segmentation》中也被提到。这里我们展示了用我们的框架训练的模型可以始终如一地执行一个具有不同IOU阈值的基础方法。
定量分析
(1)轮廓检测
图8给出一些例子的轮廓预测结果。从这些例子中我们可以看出,我们的模型可以有效地提取出文本。两件事情需要注意到:1. 对于UberText数据集,有时文本实例是每个单词一行,我们学习到的边界轮廓网络可以有效的提取它。2. 甚至当文本边界检测不完美时(如第三张图片),通过联合学习轮廓线和探测到的视觉特征,我们仍然能够给出一个精确的预测。这和之前发布的想法(参考文章《 Single shot text detector with regional attention》)有了鲜明的对比。
(2)与基线的对比
图9展示了与基线方法相比,轮廓级联模型检测的结果示例:
我们可以看出,级联模型给出了更好的预测结果。
(3)失败的例子
有几个不完美的例子,我们也展示出了它们的轮廓预测,如图10所示:
我们可以看到,一些符号很容易被识别为文本,并将导致不完美的预测。这是由场景文本探测器所犯的常见错误。当构建带有场景文本读取的端到端的流程时,可以通过检查转录文本来部分删除。
总结与展望:
我们提出了一种改进现场文本检测的新颖有效的框架。该框架合并了文本实例的轮廓分割,以帮助改进场景文本检测。与常规图像中的轮廓分割不同,我们将它特别地扩展到场景文本区域。我们现在有了更多的语义轮廓,因为它不是图像边缘的子集,而且它还包含实例级信息。在这样的定义下,我们的框架不需要任何注释。传统的四边注释足以在我们的框架下训练模型。
我们对最近的场景文本检测器进行了评估,将轮廓作为辅助损失或轮廓作为级联任务。:在不同的框架配置下进行了大量的实验,并证明了:(1)框架在两个方面改进了,特别是当训练集很大的时候(UberText);(2)在不同的模型配置中,在级联任务中轮廓预测达到最好的性能,而轮廓作为辅助损失也可以提高性能而不增加额外的计算成本;(3)在不同的数据集上,训练有素的模型在不同的数据集上取得了良好的性能,并且在不同的IOU阈值中始终优于基线方法。此外,该框架简单而通用,我们相信其他场景文本检测模型也会从中受益。