文本检测大满贯!自适应文本区域表示改进形状任意的文本检测
论文名称:Arbitrary Shape Scene Text Detection with Adaptive Text Region Representation
作者来自:三星中国研究院、中科院自动化所、中科院大学、韩国三星研究院。
论文链接:https://arxiv.org/abs/1905.05980
目前还未发现相关开源代码。
导语
在计算机视觉领域,场景文字检测(scene text detection)引起很大关注, 因为它可以被广泛应用于各种场景,实时的文本翻译、自动信息输入、盲人助手、机器感知等等。虽然已经有很多针对水平/多方向文本的方法,但是检测不规则形状的文本如曲线文本仍然具有挑战。
具体来说,给定一个输入图片,首先由一个文本候选区域提取网络来提取文本,然后通过一个修正网络来验证和改进这些候选区域,在这个过程中,一个基于自适应文本区域表示的RNN被用于文本区域修正, 每次预测一对边界点直到没有新的点。
利用这种方式,不同形状的文本区域就能被检测出来,并且能够自适应的用不同数量的点数表示, 得到更精确的描述。 在NMS之后,输出剩余的文本区域作为检测结果。五个数据集上的实验表明,即CTW1500,TotalText,ICDAR2013,ICDAR2015和MSRA-TD500,该方法刷出了SOTA的成绩。
简介
文本是交流语义信息的最重要媒介,它出现在生活的方方面面,街道名牌,商店标志,产品包装,餐厅菜单等。自然环境中的这些文本被称为场景文本。自动检测和识别场景文本可以用于很多方面,例如实时文本翻译,盲人协助,购物,机器人,智能汽车和教育。
一个端到端的文本识别系统通常包括两个步骤:文本检测和文本识别。在文本检测中,检测文本区域并标记其边界框。在文本识别中,从检测到的文本区域中检索文本信息。文本检测是端到端文本识别的重要步骤,没有文本检测,就无法从场景图像中识别文本。因此,场景文本检测近年来引起了很多关注。
传统的OCR技术只能处理打印文档或名片上的文本,场景文本检测试图检测复杂场景中的各种文本。由于复杂的背景和字体,大小,颜色,语言,照明条件和方向的变化,场景文本检测非常具有挑战性。在深度学习方法流行之前,使用手工设计的feature和传统的分类器时,其表现差强人意。
深度学习的发展使得其得到了很大改善。同时,文本检测的研究重点已从水平场景文本转向多向场景文本和更具挑战性的曲面或任意形状场景文本。该论文重点研究了任意形状的场景文本检测。
现有工作:
非深度学习方法:在深度学习成为最有前途的机器学习工具之前,基于滑动窗口的方法通过在图像上移动多尺度窗口并将当前补丁分类为文本或非文本。基于连接组件CC(Connected component)的方法,尤其是基于最大稳定极值区域(MSER)的方法,通过提取CC获得候选字符,然后这些候选CC被分类为文本或非文本。这些方法通常采用自下而上的策略,并且通常需要几个步骤来检测文本(例如,字符检测、文本行构造和文本行分类)。由于每个步骤都可能导致错误分类,因此这些传统的文本检测方法的性能很差。
基于深度学习的方法:这些方法可以分为三组,包括基于边界框回归的方法,基于分割的方法和组合方法。基于边界框回归的方法是受到一般目标检测方法的启发,如SSD 和Faster RCNN ,将文本视为一种对象并直接估计其边界框作为检测结果。和常规的目标检测方法一样,也分为一阶段方法和二阶段方法,包括深度直接回归,TextBox,TextBoxes ++ ,DMPNet,SegLink和EAST在内的一阶段方法和包括R2CNN,RRD,RRPN,IncepText和FEN的二阶段方法。基于分割的方法试图通过从背景中分割文本区域来解决问题,并且需要额外的步骤来获得最终的边界框。组合方法使用与Mask R-CNN 类似的策略,其中分割和边界框回归都是为了获得更好的性能。但由于需要比以前的方法更多的步骤,因此处理时间增加。在这三种方法中,基于边界框回归的方法是场景文本检测中最常用的方法。
对于基于边界框回归的方法,两阶段方法通常比一阶段方法获得更高的性能。因此,该论文使用了两阶段检测的思想。大多数提出的场景文本检测方法只能处理水平或定向文本,但是检测诸如弯曲文本之类的任意形状文本最近引起了更多关注。
在CTD中,固定14个点的多边形用于表示文本区域。虽然固定14个点的多边形对于大多数文本区域来说已足够,但对于某些长曲线文本行来说还不够。此外,大多数水平和定向文本的14个点太多,而这些文本的4个点就足够了。
在TextSnake 中,文本实例被描述为以文本区域的对称轴为中心的有序重叠磁盘序列。每个磁盘都与潜在的可变半径和方向相关联,这些都是通过完全卷积网络(FCN)模型估算的。此外,受Mask R-CNN启发的Mask TextSpotter可以通过语义分割处理不规则形状的文本实例。
虽然TextSnake和Mask TextSpotter都可以处理任意形状的文本,但是它们都需要逐像素预测,这需要大量的计算。考虑到固定点数的多边形不适合表示不同形状的文本区域,因此该论文提出了一种自适应文本区域表示,使用不同数量的点来表示不同形状的文本。同时,使用RNN来学习每个文本区域的自适应表示,进而直接标记文本区域并且不需要逐像素分割。
模型
图1显示了所提出的任意形状文本检测方法的流程图,这是一种两阶段检测方法。它包括两个步骤:文本候选区域提取和候选区域改进。
给定输入图像,首先利用一个文本区域候选网络(Text-RPN)来获取文本候选区域(text proposal),同时在此步中也利用CNN获得输入图像的特征图(feature map),通过使用兴趣区域技术(ROI)结合feature map得到改进网络(Refinement network)的输入。
上步中得到的文本候选区域被改进网络(Refinement network)验证并重新修正。该网络存在三个分支,分别是文字/非文字分类、边界框修正和基于RNN的自适应文本区域表示。在RNN中,每个时间步长预测一对边界点,直到停止标签被预测到。通过这种方式,可以用自适应数量的边界点表示任意形状的文本区域。
最后通过NMS极大值抑制得到结果。
Adaptive text region representation
现有的场景文本检测方法使用固定数量的点的多边形来表示文本区域。对于水平文本,2个点(左上角点和右下角点)用于表示文本区域。对于倾斜文本,其边界框的4个点用于表示这些区域。此外,对于曲线文本,CTW1500采用了14个点表示。
然而,对于一些非常复杂的场景文本,例如弯曲的长文本,14个点不足以很好地表示它们。对于大多数场景文本,例如水平文本和定向文本,少于14个点就足够了,使用14个点来表示这些文本区域是一种浪费。
因此使用自适应数量的点的多边形来表示文本区域是合理的。文本区域边界上的角点可以用于区域表示,如图2(a)所示。
然而,以这种方式的点不是沿一个方向排列的,并且可能难以学习,因此需要人工校正来进行精确分割。通常,文本区域具有近似对称的边界和下界,如图3所示,因此使用来自两个边界的成对点进行文本区域表示更合适。从文本区域的一端到另一端学习成对的边界点要容易得多,如图2(b)所示。通过这种方式,不同的场景文本区域可以精确地由不同数量的点表示,如图3所示。
Text proposal
第一步是由Text-RPN生成文本候选区域。Text-RPN与Faster R-CNN 中的RPN类似,除了backbone networks和anchor sizes有所不同之外。这里backbone network是SE-VGG16,如表1所示。 此外,因为场景文本通常具有不同的大小,所以anchor sizes被设置为{32,64,128,256,512},以覆盖更多文本,同时保持宽高比{0.5,1,2}。
Proposal refinement
Proposal refinement网络验证和改进上一步产生的文本候选区域,由三个分支组成:文本/非文本分类,边界框回归和基于RNN的自适应文本区域表示。
其中文本/非文本分类和边界框回归与其他两阶段文本检测方法类似,而最后一个候选区域分支被用于任意形状的文本表示。
对于候选区域分支,输入是每个文本候选区域的特征,输出是每个文本区域的自适应边界点数。由于不同文本区域的输出长度不同,因此使用RNN预测这些点。该论文使用长短记忆存储器(LSTM)。
LSTM用于学习文本区域表示,每个时间步的输入是通过ROI在feature map上获取的文本候选区域。边界点用两个成对点(xi,yi,xi + 1,yi + 1的坐标来表示,作为回归目标,如图5所示。
由于自适应数量的点用于不同的文本区域,因此需要停止标签(stop label)来表示预测网络何时停止。因为停止标签预测是分类问题,而坐标预测是回归问题,所以放在同一分支中是不合适的。因此LSTM的每个时间步中有两个分支:一个用于点坐标回归,一个用于停止标签预测。
由于检测到的文本区域用多边形表示,因此基于水平边界框的面积计算的常规NMS不适用于此,所以使用基于文本区域的多边形的面积的NMS。
实验
数据集:CTW1500,TotalText,ICDAR2013,ICDAR2015和MSRA-TD500
初始网络:pre-trained VGG16 for ImageNet classification
训练次数:10 * 10 ^ 4
学习率:初始学习率为10^-3, 在 2 × 10^4, 6 × 10^4 和8 × 10^4 迭代步乘以1/10。
weight decay:0.0005
momentum:0.9
多尺度训练:短边集为{400, 600, 720, 1000, 1200}, 长边维持为2000
框架:caffe
GPU:Nvidia P40 GPU
消融研究
论文在CTW1500数据集和ICDAR 2015数据集上使用不同的basebone网络(SE-VGG16与VGG16)测试,如表2所示。结果表明SE-VGG16优于VGG16, 在两个数据集上实现了更好的性能。
论文在CTW1500数据集上添加了关于文本区域表示的消融研究。为了比较,固定的文本区域表示直接使用固定的14个点作为实验中的回归目标。表3显示了CTW1500数据集上不同文本区域表示方法的实验结果。具有自适应表示的方法的回忆远高于固定表示(80.2%对76.4%)。它证明了自适应文本区域表示更适合于任意形状的文本。
性能比较
表4是在数据集CTW1500上进行的实验结果,该方法比CTD,CTD + TLOC和TextSnake等曲线文本设计的方法都要好。
表5是在数据集TotalText上进行的实验结果,也比TotalText上的所有其他方法实现更好的性能。
表6是ICDAR2013数据集上的实验结果。该方法实现了与Mask Textspotter相同的最佳性能,Hmean均为91.7%。由于论文提出的方法是在单一模型的单一尺度输入图像上进行测试的,因此这里仅使用在这种情况下生成的结果。结果表明该方法还可以很好地处理水平文本。
表7是ICDAR 2015数据集上的实验结果,达到了第二好的性能,仅略低于FOTS(Hmean:87.6%对88.0%)。但是论文提出的方法比通过组合文本检测和识别来训练的FOTS更容易训练。结果证明论文提出的方法与现有技术的性能相当,也可以很好地处理多向文本。
表8是MSRA-TD500数据集上的结果,证明论文的方法可以很好地支持长文本行检测和中文+英文检测。它实现了83.6%的Hmean,优于所有其他方法。
速度比较
表9所示的方法都能够处理任意形状的场景文本。结果表明论文中的方法的速度比其他两种方法快得多。
检测结果示例
图6展示了在数据集CTW1500,TotalText,ICDAR2013,ICDAR2015和MSRA-TD500的结果。证明所提出的方法可以处理任意定向或弯曲的各种文本,不同的语言,不均匀的照明和在单词级别或句子级别的不同文本长度。
结论
该论文提出一种具有自适应文本区域表示的任意形状场景文本检测的方法。首先使用Text-RPN得到文本候选区域,再利用RNN来验证和重新定义每个文本区域以预测边界点的自适应数量。五个基准测试的实验表明,该方法不仅可以检测水平和定向的场景文本,而且还可以很好地适用于任意形状的场景文本。特别在CTW1500和MSRA-TD500数据集上显著优于现有方法。
OCR专业交流群