《Mask TextSpotter》论文阅读笔记

Mask TextSpotter

读该论文的目的,之前读了MaskTextSpotterV3论文,然后又读了MaskRCNN论文,所以想阅读下这篇论文,想看看如何把MaskRCNN网络应用到文字识别检测这个方向的。

文章目录


再增加几个问题:
《Mask TextSpotter》论文阅读笔记
该内容采用: 摘录重点部分+提出问题的方式,来阅读该篇论文。 后面会逐一的解答提出来的的问题。

make decision

step1:读摘要

近年来,基于深度神经网络的模型已经主导了场景文本检测和识别领域。该篇文章研究的是场景文本定位问题,其作用就是再自然场景中同时进行文本检测和识别。提出了一种用于场景文本识别的端到端可训练神经网络模型,称为Mask TextSpotter。它是灵感来自于MaskRCNN,Mask TestSpotter利用简单平滑的端到端学习过程,其中能够通过语义分割来获取精确的文本检测和识别。且在当时,在ICDAR2013、ICDAR2015和Total-Text 数据库上的实验表明,该方法在场景文本检测和端到端文本识别任务中均取得了良好的效果。

step2:读Introduction

近年来,尤其是在神经网络的兴起和图像数据集的增长之后,场景文本检测和识别在计算机视觉领域受到了越来越多的关注。场景文本检测和识别提供了一种自动、快速的方法来获取自然场景中包含的文本信息,有利于我们生活当中各种应用的实现,比如说地理定位、即时翻译和盲人辅助。
在先前的大多数场景文本检测和识别方向的论文中,文本检测和识别是分开进行的。首先由训练好的检测器将文本区域从原始图像中搜索出来,然后输入识别模块。这两个模块看起来简单自然,但是可能会导致检测和识别局部最优(sub-optimal)性能,因为这两个任务是高度相关和互补的。一方面,检测的质量很大程度上决定了识别的准确性;另一方面,识别的结果可以提供反馈,帮助在检测阶段拒绝假阳性。
最近,已经提出了两种方法,Deep TextSpotter和End-to-end with CRNN,他们设计了用于场景文本定位的端到端可训练模型。得益于检测和识别的互补性,这些统一的模型明显优于以前的模型。然后,在这了两篇论文中有两个主要的缺点。第一,两者不能完全以端到端的当时训练。Deep TextSpotter在训练期间应用了课程学习案例(a curriculum learning paradigm),其中用于文本识别的子网络在早期迭代时被锁定,并且每个期间的训练数据被仔细选择。第二,自然场景中文本实例的形状可能会有很大的不同,从水平到定向,再到弯曲。
这里作者就引出了自己提出的网络模型Mask TextSpotter,它可以检测和识别出任意形状的文本实例。受Mask RCNN的启发,Mask RCNN可以生成对象的形状遮罩,作者的模型通过分割实例文本区域来检测文本。所以作者的检测器能够检测任意形状的文本。此外不同于以前基于一维序列的识别方法,该检测器通过二维空间在中的语义分割来识别文本,以解决阅读不规则文本实例的问题。另一个优点是它不需要精确的位置来识别。因此,检测任务和识别任务可以完全端到端训练,并受益于特征共享和联合优化。
作者主要的贡献有四个方面

  • 提出了一种端到端的文本识别训练模型,该模型具有简单、平滑的训练方案
  • 提出的方法可以检测和识别各种形状的文本,包括水平的、定向的和弯曲的文本
  • 与以往的方法相比,本文提出的方法通过语义分割来实现精确文本检测和识别
  • 作者的方法在各种基准上实现了文本检测和文本定位的最新性能,达到SOTA水平

step3:读 Conclusion

在这篇论文中,作者提出了一种文本检测器,他可以在一个统一的网络中检测和识别场景文本,并且可以进行完整的端到端训练。与以前的方法相比,作者提出的网络非常容易训练,并具有检测和识别不规则文本如(弯曲文本)的能力。在包含水平文本、定向文本和弯曲文本的所有数据集上令人印象深刻的性能证明了我们的方法对于端到端的文本检测和识别具有有效性和鲁棒性。

step4:读 Related works

4.1 Scene Text Detection

场景文本检测
首先对前人做的工作进行了一个总结。然后提到现有的工作很少有关注任意形状的文本实例。近年来,由于现实场景中的应用需要,对任意形状文本的检测逐渐引起了研究者的关注。作者提出通过实例分割来检测场景文本,这种方法可以检测任意形状的文本。

4.2 Scene Text Recognition

场景文本识别
旨在将检测到的或剪切的图像区域解码成字符序列。先前的场景文本识别方法可以大致分为三个分支:基于字符的方法、基于单词的方法和基于序列的方法。基于字符的识别方法主要是首先定位单个字符,然后识别它们并将其分组为单词。基于单词的识别方法就是将文本识别作为一个常见的英语词(90k)分类问题。基于序列的方法将文本识别作为一个序列标注问题来解决。
该片论文提出的文本识别组件可以被分为基于字符的方法。然而,与以前基于字符的方法相反,作者使用的是FCN来同时定位和分类字符。此外,与为一维序列设计的基于序列的方法相比,作者的方法更合适处理不规则文本(多方向文本、弯曲文本等)

4.3 Scene Text Spotting

大多数以前的文本识别方法将识别过程分为两个阶段。他们首先使用场景文本检测器来定位文本实例,然后使用文本识别器来获得识别的文本。还有一种方法就是在一个网络中定位和识别文本端到端的方法(Deep TextSpotter和End-to-end with CRNN),但是需要相对复杂的训练过程。与这些方法相比,作者提出的text spotter不仅可以进行完整的端到端训练,而且能够检测和识别任意形状(水平、定向和弯曲)的场景文本

4.4 General Object Detection and Semantic Segmentation

通用对象检测和语义分割
随着深度学习的兴起,通用对象检测和语义分割得到了很大的发展。大量的目标检测和分割方法都被提了出来。得益于这些方法,场景文本检测和识别在过去几年取得了明显的进展。作者的方法也是受这些方法的启发。具体来说,作者的方法是从一个通用的对象实例分割模型MaskRCNN改编而来的,而作者的mask分支和maskRCNN有关键的区别。作者的mask分支不仅可以分割文本区域,还可以预测字符概率图,这意味着作者的方法可以用于识别字符概率图中的实例序列,而不仅仅是预测对象掩码

step5:Methodology

所提出的方法是一个端到端的可训练文本观察器(spotter),它可以处理各种形状的文本。它是基于实例分割的文本检测器和基于字符分割的文本识别器组成。
《Mask TextSpotter》论文阅读笔记

5.1 Framework

作者提出的方法如图上所示。在功能上,该框架由四个部分组成:作为主干的特征金字塔网络(FPN),用于生成文本建议的区域建议网络(RPN),用于边界框回归的fast-RCNN网络,用于文本实例分割和字符分割的掩码分支。
在训练阶段,首先由RPN生成大量文本建议框,然后将建议的RoI特征输入到Fast-RCNN分支和Mask分支,以生成准确的文本候选框、文本实例分割图和字符分割图

backbone

自然图像的文本大小不一。为了在所有尺度上构建高级语义特征图,作者将深度为50层的ResNet作为特征金字塔结构主干。FPN使用自上而下的体系结构融合了来自单个尺度输入的不同分辨率的特征,提高了边际成本的精度。

RPN

RPN用于为后续的Fast-RCNN和掩码分支生成文本建议框。作者在不同阶段分配不同大小的锚(anchor),锚的面积在五个阶段{P2、P3、P4、P5、P6}分别设置为{ 3 2 2 , 6 4 2 , 12 8 2 , 25 6 2 , 51 2 2 32^2,64^2,128^2,256^2,512^2 322,642,1282,2562,5122}像素。每个阶段都有不同的长宽比{0.5,1,2}。这样RPN能够处理各种大小和纵横比的文本。RoI Align适用于提取proposal的区域特征,ROI Align保留了更准确的位置信息,这对于mask分支中的分割任务非常有效。这里没有针对极端纵横比的文本进行特殊处理。

Fast RCNN

Fast RCNN分支包括分类任务和回归任务。这个分支的主要功能是为检测提供更精确的bounding boxes。Fast RCNN的输入是7*7分辨率的特征图,它是由RoI Align从PRN的proposal中产生的。

Mask Branch

掩码分支中有两个任务,包括全局文本实例分割和字符分割任务。如图三所示,给定固定大小为1664的输入RoI特征,通过四个卷积层和一个反卷积层,掩码分支预测出38个映射(大小为32128),包含一个全局文本实例映射、36个字符映射和一个字符背景映射。无论文本实例的形状如何,全局文本实例映射都可以提供文本区域的准确定位。字符映射是36个字符的映射,包括26个字母和10个阿拉伯数字。后处理还需要字符的背景映射,背景映射不包括字符区域。
《Mask TextSpotter》论文阅读笔记

5.2 Label Generation

对于具有输入图像I和相应的真实标签值,我们为RPN,FastRCNN和Mask branch生成目标。一般来说,基本的标签包括 P = { p 1 , p 2 … p m } P=\{ p_1,p_2\ldots p_m \} P={p1​,p2​…pm​}和 C = { c 1 = ( c c 1 , c l 1 ) , c 2 = ( c c 2 , c l 2 ) , … , c n = ( c c n , c l n ) } C=\{ c_1 = (cc_1,cl_1),c_2 = (cc_2,cl_2), \ldots,c_n = (cc_n,cl_n)\} C={c1​=(cc1​,cl1​),c2​=(cc2​,cl2​),…,cn​=(ccn​,cln​)},其中 p i p_i pi​表示文本区域定位的多边形, c c j cc_j ccj​, c l j cl_j clj​分别表示字符的类别和位置。注意,在我们的方法中,C不是所有训练样本都必须拥有的。
我们首先将多边形转换成水平矩形,以最小的面积覆盖多边形。然后我们为RPN和Fast R-CNN生成目标。对于掩码分支,有两种类型的目标图需要生成,一种是用于文本实例分割的全局图,另一种是用于字符语义分割的字符图。给定一个正样本proposal r,我们首先使用[8,40,32]的匹配机制来获得最佳匹配的水平矩形。可以进一步获得相应的多边形以及字符(如果有的话)。接下来,匹配的多边形和字符框被移动和调整大小,以将提案和目标地图H × W对齐,如下公式:
《Mask TextSpotter》论文阅读笔记
其中 ( B x , B y ) (B_x,B_y) (Bx​,By​)和 ( B x 0 , B y 0 ) (B_{x_0},B_{y_0)} (Bx0​​,By0​)​是多边形和所有字符框的更新和原始顶点; ( r x , r y ) (r_x,r_y) (rx​,ry​)是proposal r的顶点,
之后,只需在初始化为零的掩膜上绘制归一化的多边形,并用值1填充多边形区域,就可以生成目标全局地图。字符图生成在图4a中可视化。我们首先通过固定所有字符边界框的中心点,并将边缩短到原始边的四分之一来缩小它们。然后,收缩的字符边界框中的像素值被设置为它们相应的类别索引,而收缩的字符边界框之外的像素值被设置为0。如果没有字符边界框注释,所有值都设置为1。
《Mask TextSpotter》论文阅读笔记

5.3 Optimization

L = L r p n + α 1 L r c n n + α 2 L m a s k L = L_{rpn} + \alpha_1L_{rcnn}+\alpha_2L_{mask} L=Lrpn​+α1​Lrcnn​+α2​Lmask​

5.4 Inference

测试阶段
与来自RPN的掩码分支的输入RoIs的训练过程不同,在推理阶段,我们使用FastRCNN的输出作为proposals去生成预测全局特征和字符特征,因为FastRCNN的输出更准确。
具体来说,推理的过程如下:首先,输入一张要测试的图像,获得FastRCNN的输出,并且通过NMS过滤出冗余候选框;然后,将剩下的proposals送入mask分支,生成全局特征和字符特征;最后,通过计算全局特征上文本区域的轮廓,可以直接获得预测的多边形,通过我们提出的字符特征上的像素投票算法可以生成字符序列。

5.4.1 Pixel Voting

通过我们提出的像素投票算法,我们将预测的字符映射解码成字符序列。我们首先对背景图进行二值化,其值从0到255,阈值为192。然后根据二值化图中的连通区域得到所有的字符区域。我们计算所有字符图的每个区域的平均值。这些值可以视为该区域的字符类概率。平均值最大的字符类别将被分配给该区域。之后,我们根据英语的书写习惯,将所有的字符从左到右分组

5.4.2 Weighted Edit Distance

加权编辑距离
《Mask TextSpotter》论文阅读笔记

编辑距离和我们建议的加权编辑距离。红色字符是将被删除、插入和替换的字符。绿色字符表示候选字符。 P i n d e x C P^C_{index} PindexC​是字符概率, i n d e x index index是字符索引, c c c是当前字符

step6: Experiments

为了验证所提出的方法的有效性,作者在三个公共数据集上进行了实验,并于其他SOTA方法进行了比较:水平文本集ICDAR2013,定向文本集ICDAR2015和弯曲文本集Total-Text

6.1 Datasets

SynthText 是]提出的合成数据集,包括约80万张图像。该数据集中的大多数文本实例都是面向多方向的,并使用单词和字符级别的旋转边界框以及文本序列进行注释。
ICDAR2013 是在ICDAR 2013 Robust Reading 比赛的挑战2中提出的数据集,其关注自然图像中的水平文本检测和识别。训练集中有229幅图像,测试集中有233幅图像。此外,还为每个单词级和字符级文本实例提供了边界框和转录。
ICDAR2015 是在ICDAR 2015 Robust Reading 竞赛的挑战4中提出的。相比于2013年聚焦于特定场景下的“聚焦文本”,2015年更关注场景文本的检测和识别。它包含1000个训练样本和500个测试图像。所有的训练图像都用单词级的四边形以及相应的转录来注释。注意,我们的训练阶段只使用单词的本地化标注。
Total-Text 是提出的一个综合场景文本数据集。除了水平文本和定向文本之外,总文本还包括许多弯曲文本。总文本包含1255个训练图像和300个测试图像。所有的图片都用多边形和文字标注。注意,我们只在训练阶段使用本地化注释。

6.2 Implementation details

**训练阶段:**与以前使用两个独立模型(检测器和识别器)或交替训练策略的文本识别方法不同,我们模型的所有子网都可以同步和端到端地训练。整个训练过程包含两个阶段:在SynthText上预训练和在真实世界数据上微调。
在预训练阶段,我们将小批量设置为8,输入图像的所有较短边缘都调整为800像素,同时保持图像的纵横比。RPN和Fast R-CNN的批量大小设置为每幅图像256和512,正片与底片的样本比为1 : 3。掩码分支的批量大小为16。在微调阶段,由于缺少真实样本,采用了数据增强和多尺度训练技术。具体来说,对于数据增强,我们在某个角度范围[-15°,15°]内随机旋转输入图片。其他一些增强技巧,如随机修改色调、亮度、对比度。对于多尺度训练,输入图像的短边被随机调整到三个尺度(600,800,1000)。此外,在[27]之后,来自[56]的用于字符检测的额外的1162个图像也被用作训练样本。图像的小批量保持为8个,在每个小批量中,SynthText、ICDAR2013、ICDAR2015、Total-Text和额外图像的不同数据集的样本比例分别设置为4 : 1 : 1 : 1 : 1。RPN和Fast R-CNN的批量保持为预训练阶段,微调时掩膜分支的批量设置为64。
我们使用SGD优化我们的模型,权重衰减为0.0001,动量为0.9。在预训练阶段,我们训练我们的模型进行170k次迭代,初始学习率为0.005。然后在120k迭代时学习率衰减到十分之一。在微调阶段,初始学习率设置为0.001,然后在40k迭代时降低到0.0001。微调过程在80k迭代时终止。
推理阶段:输入图像的比例取决于不同的数据集。在NMS之后,1000个提案被输入到FastRCNN。False alarms和冗余候选框分别由FastRCNN和NMS过滤掉。保留的候选框被输入到掩码分支,以生成全局文本实例映射和字符映射。最后,根据预测的地图生成文本实例边界框和序列。我们在Caffe2中实现了我们的方法,并在一个带有Nvidia Titan Xp GPUs的常规工作站上进行了所有实验。该模型被并行训练,并在单个GPU上进行评估。

6.3 Horizontal text

我们在ICDAR2013数据集上评估了我们的模型,以验证它在检测和识别水平文本方面的有效性。我们将所有输入图像的短边调整到1000,并在线评估结果。我们模型的结果在表1和表3中列出,并与其他最先进的方法进行了比较。如图所示,我们的方法在检测、单词识别和端到端识别方面取得了最先进的结果。具体来说,对于检测,虽然在单个尺度下进行评估,但我们的方法优于以前在多尺度设置下评估的一些方法[18,16] (F-Measure:91.7% vs . s . 90.3%);对于单词识别,我们的方法与以前的最佳方法相当;对于端到端识别,尽管[30,27]取得了惊人的结果,但我们的方法仍然比它们高出1.1%-1.9%。

6.4 Oriented text

通过在ICDAR2015上的实验,验证了该方法在检测和识别有向文本方面的优越性。我们以三种不同的比例输入图像:原始比例(720×1280)和两种更大的比例,其中由于ICDAR2015中的大量小文本实例,输入图像的短边分别为1000和1600。我们在线评估我们的方法,并将其与表2和表3中的其他方法进行比较。我们的方法在检测和识别方面都大大优于以前的方法。对于检测,当在原始尺度下评估时,我们的方法实现了84%的F-Measure,比在多个尺度下评估的当前最佳F-Measure[16]高3.0%。当以更大的规模进行评估时,可以获得更令人印象深刻的结果(F-Measure: 86.0%),超过竞争对手至少5.0%。此外,我们的方法在单词识别和端到端识别方面也取得了显著的效果。与现有技术相比,我们的方法在所有评估情况下的性能都有13.2%-25.3%的显著提高。
《Mask TextSpotter》论文阅读笔记
根据网友评论Word Spotting是由字典的,识别的内容是有限集,而End-to-End是没有字典的,输出啥就是啥
《Mask TextSpotter》论文阅读笔记
《Mask TextSpotter》论文阅读笔记

6.5 Curved text

检测和识别任意文本(例如弯曲文本)是我们的方法相对于其他方法的巨大优势。我们在全文数据库上进行了实验,以验证我们的方法在检测和识别弯曲文本方面的鲁棒性。类似地,我们输入短边调整到1000的测试图像。[4]提供了检测的评估方案。端到端识别的评估协议遵循ICDAR 2015,同时将多边形的表示从四个顶点更改为任意数量的顶点,以处理任意形状的多边形。为了与其他方法进行比较,我们还使用具有相同训练数据的[30]3中的代码训练了模型[30]。如图7所示,我们的方法在弯曲文本的检测和识别上具有很大的优势。表4中的结果表明,我们的方法在检测方面超过[30]8.8个点,在端到端识别方面至少超过16.6%。检测的显著改进主要来自更精确的定位输出,其用多边形而不是水平矩形包围文本区域。此外,我们的方法更适合处理二维空间中的序列(如曲线),而[30,27,3]中使用的序列识别网络是为一维序列设计的。

《Mask TextSpotter》论文阅读笔记
《Mask TextSpotter》论文阅读笔记

6.6 Speed

与以前的方法相比,我们提出的方法表现出良好的速度精度权衡。它可以以6.9 FPS运行,输入规模为720 × 1280。虽然比最快的方法[3]慢一点,但它在精度上大大超过了[3]。此外,我们的速度约为[27]的4.4倍,这是ICDAR2013上的最新水平。

6.7 Ablation Experiments

step7:回答问题

7.1 本文讨论的主要问题/创新点是什么?主要问题和创新点从何而来?

本文讨论的主要问题是:自然场景下端到端文本识别和检测
本文的创新点是:

  • Mask TestSpotter利用简单平滑的端到端学习过程,其中能够通过语义分割来获取精确的文本检测和识别。
  • 受MaskRCNN的启发,该检测器能够通过分割实例文本区域来检测文本,所以能够检测任意形状的文本。
  • 此外不同于以前基于一维序列的识别方法,该检测器通过二维空间在中的语义分割来识别文本,以解决阅读不规则文本实例的问题

创新点从何而来:
主要是从已有的论文中获得灵感,

7.2 本文中使用的方法是什么?它们是否适合这些问题?

本文使用的方法就是作者所提出来的Mask TextSpotter模型,来解决自然场景下文字检测与识别的问题。与之前大部分的文字检测模型不同,作者提出来的是简单平滑端到端可训练的模型。超过了当时SOTA的方法。
它是适合这些问题的。因为这就是作者针对这些问题所提出的方法。

7. 3 本工作的意义在于什么?

近年来,尤其是在神经网络的兴起和图像数据集的增长之后,场景文本检测和识别在计算机视觉领域受到了越来越多的关注。场景文本检测和识别提供了一种自动、快速的方法来获取自然场景中包含的文本信息,有利于我们生活当中各种应用的实现,比如说地理定位、即时翻译和盲人辅助。

7.4 为什么要做这个工作?

7.5. 这些创新点应用上有什么好处?

能够达到比之前更好的效果。
创新点一:提出了一种端到端的文本识别训练模型,
好处: 该模型具有简单、平滑的训练方案,能够
创新点二:提出的方法可以检测和识别各种形状的文本,包括水平的、定向的和弯曲的文本
创新点三:与以往的方法相比,本文提出的方法通过语义分割来实现精确文本检测和识别
创新点四:作者的方法在各种基准上实现了文本检测和文本定位的最新性能,达到SOTA水平

7.6. 还能从另一个角度去探讨吗?

关于这个自然场景的文本检测当然可以从另一个角度去探讨。在文中,作者提到他们的方法是end-to-end方法,即文本检测和文本识别是在一块的。因此我们可以将这两个分开,分别从文本检测和文本识别两个方面来探讨。

7.7. 这篇论文的主要论据是什么?

作者分别从理论和实验来证明提出的方法优于现有的其他模型。
在理论上:整体框架为 FPN+ResNet50+RPN+FastRCNN+MaskBranch,受到maskRCNN的启发,将mask应用到了文本检测上,修改了原来的mask分支的输出,使其包含了全局文本实例分割和字符分割即采用的是基于文本的实例分割方法。
在实验上:作者分别在三类数据集上(水平,弯曲,和定向)进行实验,和现有的sota方法(textboxes、Deep text spotter、Textspotter等方法)进行对比,结果显示作者的方法是是目前最有效的。

7.8. 这篇论文最主要的缺点或者局限是什么?

由于作者是基于maskRCNN改进而来的,也就是基于分割的方法来进行文本检测。因此也就具有字符分割的一些局限性。

  • 首先,字符分割需要字符级注释来监督训练
  • 其次,需要一种特殊设计的后处理算法从分割图中生成文本序列
  • 第三,不能从分割图中获得字符的顺序

7.9. 这篇论文的哪些部分(点子)值得参考?

这篇论文是将用于目标检测的maskRCNN进行改进从而可以对自然场景下的文字进行识别和检测的。因此这个部分可以参考,即怎样对maskRCNN网络进行改进从而可以对自然场景下的文字进行识别和检测的。

7.10. 对自己的研究,有哪些指导意义和启示

  1. 可以清楚了解论文格式,论文的主要组成部分有:标题,摘要,引言,相关工作,方法,实验和结论七个部分。
  2. 可以模仿该篇论文的实验部分,通过与现阶段的sota方法作比较来证明自己方法的创新性。
  3. 能够更加明确现有的文本检测的方法有哪些,各有什么特点。

7.11. 为什么要设计具体这套实验?

就是为了证明作者提出的方法在对水平文本,弯曲文本和定向文本进行检测识别时,相比与已有的其他文字检测的方法而言,有更好的效果。

7.12. 这套实验和别的实验哪个更好?好在哪里?

7.13 maskRCNN是如何应用到MaskTextSpotter上面的

maskRCNN是目标检测算法,而MaskTextSpotter是用于文字检测的,这是怎么进行转换的。

  • 文本实例分割图和字符分割图有什么区别

参考

文本检测之MaskTextSpotter
文本检测+识别之Mask TextSpotter
场景文本识别—Mask TextSpotter v1 & v2 & v3

上一篇:C# WinForm开发系列 - ListBox/ListView/Panel


下一篇:C# WinForm开发系列 - Form/Window