自然场景文本检测与识别的深度学习方法
abstract
- 许多自然场景图像中都包含丰富的文本,它们对于场景理解有着重要的作用。随着移动互联网技术的飞速发展,许多新的应用场景都需要利用这些文本信息,例如招牌识别和自动驾驶等。因此,自然场景文本的分析与处理也越来越成为计算机视觉领域的研究热点之一,该任务主要包括文本检测与识别。传统的文本检测和识别方法依赖于人工设计的特征和规则,且模型设计复杂,效率低、泛化性能差。随着深度学习的发展,自然场景文本检测、自然场景文本识别以及端到端的自然场景文本检测与识别都取得了突破性的进展,其性能和效率都得到了显著提高 。本文介绍了该领域相关的研究背景,对基于深度学习的自然场景文本检测、识别以及端到端自然场景文本检测与识别的方法进行整理分类、归纳和总结,阐述了各类方法的基本思想和优缺点。并针对隶属于不同类别下的方法,进一步论述和分析这些主要模型的算法流程,适用场景和技术发展路线。此外,列举说明了部分主流公开数据集,对比了各个模型方法在代表性数据集上的性能情况。最后总结了目前不同场景数据下的自然场景文本检测、识别及端到端自然场景文本检测与识别算法的局限性以及未来的挑战和发展趋势。
introduction
-
文本是人类最伟大和最具影响力的发明之一是人类智慧的结品,是人类文化、思想传承的一种基本的表达方式和不可或缺的载体。在21世纪,文本与日常生活密切相关。描述、理解万事万物,表达情感,与他人交流都离不开文本。文本以各种形式存在于生活中,尤其在信息时代,随着数码相机、智能手机等具有拍照和摄像功能的便携式电子设备的广泛使用,大量的文本也以图像或者视频的数据方式被保存下来。同时,移动互联网技术的飞速发展使得这类数据的传播和分享更加便捷。因此,人们迫切希望利用计算机对图像或视频中的文本进行检测识别,形成语义表达的方式对其进行理解。一方面可以提高各种应用场景的生产效率,比如银行的票据、文档分析等业务需求:另一方面这些文本可以作为描述场景的额外信息,辅助各类计算机视觉的实际应用任务,例如图像检索、自动驾驶和视觉信,息追踪等。因此,文本的分析与处理越来越成为计算机视觉领域的研究热点之一。
-
光学字符识别(optical character recognition OCR),是指对输人的扫描文档图像进行分析处理检测并识别出该图像当中的文本信息。而自然场景文本提取技术是传统OCR技术在自然场景图像的扩展和延伸,具有广阔的应用前景。自然场景文本主要出现在车牌、广告牌、路标和招牌等场景上。不同于传统的扫描图像文本,自然场景文本因表现形式丰富,图像背景复杂,以及图像拍摄引人的干扰因素等的影响,使得对其的分析与处理难度远高于传统的扫描文档图像。
-
1)文本展现形式丰富。自然场景中的文本对象多样且变化很大,具体可分为以下4个方面:(1)文本形状和方向相比于通用目标而言具有多样性自然场景中的文本以水平形状文本、任意四边形文本以及不规则文本 的形式存在;(2)文本的尺度变化很大 :(3)文本的语种多样 ,包括了中文、英文和阿拉伯文等一系列语种文本,不同语种属性复杂不-;(4)文本的排列和版面复杂,对于排列密集的文本,其分析和处理会具有很大的歧义性。
-
2)图像背景复杂。不同于传统文档图像相对干净的背景,自然场景文本的背景信息是很复杂的。通常很多文本会和背景有相似的纹理信息,被无关物体遮挡,以及图像或视频中的亮度变化等,都会使得检测识别受到很大程度的干扰
-
3)图像拍摄引人的干扰因素。摄像头抖动、光照和角度等因素都会给自然场景文本检测识别增加极大的挑战。
-
-
自然场景文本的提取技术可以分为两个不同的子任务,包括自然场景文本检测和自然场景文本识别 。自然场景文本检测是准确定位自然场景中文本的位置,自然场景文本识别则是识别自然场景图像中的文本信息,而端到端自然场景文本检测与识别则是将检测与识别组合成一个完整的过程,在成功定位到文本位置的同时识别出对应的文本内容。近年来,随着深度学习技术的快速发展,国内外学者针对各种问题和挑战,在自然场景文本检测、识别以及端到端自然场景文本检测与识别的任务中都尝试提出了相应的解决方案,极大地促进了自然场景文本提取和理解技术的发展。相比于传统的依赖于手工设计特征的自然场景文本检测与识别算法,基于深度学习的方法具有以下特征:
- 1)自动化程度高。基于深度学习的自然场景文本检测与识别算法可以自动地捕获文本图像的高级视觉特征,不仅使研究人员和相关从业人员摆脱了手工设计特征和验证特征的繁复过程,而且大大降低了研究人员的门槛。
- 2)检测识别性能高效。基于深度学习的自然场景文本检测与识别算法的识别性能相比于基于手工设计特征的传统文本识别算法而言,识别性能更好。
- 3)泛化性能优越。基于深度学习的自然场景文本检测与识别算法具备更优越的泛化性能,可以很容易地应用于相似的视觉任务中。
-
本文接下来的内容对近年来基于深度学习的自然场景文本检测、自然场景文本识别以及端到端自然场景文本检测与识别算法的思想和局限性分别进行了归纳、分析与总结。同时也对它们在主流数据集上的性能进行了对比。
自然场景文本检测
传统的自然场景文本检测方法简要回顾
- 大多数传统的自然场景文本检测方法主要分成两大类,一是基于滑动窗口的检测:二是基于连通区域分析的检测。
基于滑动窗口的文本检测方法
-
基于滑动窗口的文本检测方法,首先对输入图像构建图像金字塔。然后在金字塔各层不同尺度图像上利用对应尺寸的滑动窗口按一定步长进行滑动扫描,对每个滑动窗口采样的位置都提取特征并进行文本和非文本区域分类。最后对被分为文本的候选区域通过形态学的操作、条件随机场以及其他一些基于图的方法进行抑制和融合,得到最后的文本检测结果。在文本分类中人工设计的特征通常包括空间差分、像素强度和方向梯度直方图(histogram of oriented gradi-ents,HOG)等。随着卷积神经网络(convolution neural network,CNN)的兴起,也有学者提出用CNN提取的特征取代上述特征表达以增强滑窗分类性能。
-
基于滑窗的方法需要对不同尺度的图像设计不同尺度的滑动窗口遍历图像所有位置,这会使得计算量偏大,效率偏低 。而且,由于场景中的文本形状、尺度的变化都很大,这给滑动窗口的设置带来了很大的难度,因此这类方法大部分只适用于水平方向的文本检测。
基于连通区域分析的文本检测方法
-
基于连通区域分析的文本检测方法是深度学习时代之前文本检测的主流方法。基本思路是:首先对输人图像提取候选文本连通区域:然后使用人工设计的规则或特征对这些连通区域进行文本和非文本分类;最后将分类得到的文本候选连通区域进行拼接得到最终的检测结果。候选连通区域提取模块最典型的方法有基于笔画宽度变换(stoke widthtransform,SWT)的方法(和基于最大稳定极值区域( maximal stable extremal region ,MSER)的方法。
-
基于 SWT 的方法首先由 Epshtei 等人提出,该方法先对输人图像做 Canny 边缘检测,将其结果作为文本检测算法的输人,根据梯度方向是否相反匹配文本边缘的两个像素点。然后将匹配的边缘像素点对之间的距离作为它们两点之间路径上所有像素点的笔画宽度。通过这种方式,可以得到每一个像素点的笔画宽度。基于假设同一字符的笔画宽度大致相同的文本内在属性,可以将笔画宽度相近的像素点聚合生成候选连通区域。最后通过过滤以及合并得到文本行 。但基于这种像素点的方法很容易受到噪声点的影响。因此,Huang 等人提出笔画特征变换( stmke featuretansform,SFT)算子,该方法在 SWT 算法中增加了颜色信息来改进边缘像素点匹配的问题,从而提高候选连通区域提取性能。
-
基于 MSER 的方法则是另一类具有代表性的方法,Neumann和 Matas最早将 MSER 引人文本检测领域。首先一个区域内如果所有像素点的像素值都大于或者小于区域边缘像素点的像素值的区域称为极值区域(extremal region,ER)。而 MSER 指的是利用 MSER 法从原始的 ER集合中挑选出来一个子集 。在 Neumann 和Matas使用 MSER在文本检测中取得不错表现的同时,也发现该方法对文本尺度具有一定的鲁棒性。之后,又有很多研究工作对 MSER 如何应用于文本检测进行了更加深入的研究和改进,该类方法也在水平方向和多方向文本检测任务中取得了不错的检测性能。
-
基于连通区域分析的文本检测方法虽然取得了很大的进展,也能解决很多复杂的场景,但存在一些明显缺陷。一是文本区域的复杂背景噪声(背景模糊、对比度低、光照不均匀等)会对候选连通区域的提取带来很多负面影响;二是文本与非文本候选连通区域的分类会由于正负样本不均衡导致分类困难,从而导致后续文本连通区域的连接出现错误;三是对于复杂形状的文本,文本候选连通区域的拼接也是很困难。这些缺点都会影响这类方法在自然场景文本检测的泛化性能。
-
基于深度学习的自然场景文本检测方法
-
随着深度学习的快速发展,图像分类、目标检测、语义分割以及实例分割都取得了突破性的进展这些方法成为自然场景文本检测的基础。基于深度学习的自然场景文本检测方法在检测精度和泛化性能上远优于传统方法,逐渐成为了主流。图1列举了文本检测方法近几年来的发展历程。
-
基于深度学习的自然场景文本检测发展历程
-
目前,根据检测文本对象的不同可以将基于深度学习的方法划分为自顶向下的文本检测方法和自底向上的文本检测方法两大类,不同类别方法的流程如图2所示。
-
自然场景文本检测方法流程图
自顶向下的自然场景文本检测方法
-
自顶向下的自然场景文本检测方法主要是基于以深度学习为基础的目标检测技术或者实例分割技术,它将文本视为一种通用目标然后直接检测出整个文本实例。此类方法通常是直接回归出水平矩形或者多方向的任意形状多边形以解决文本检测的问题。
-
早期的这类文本检测方法基于传统滑动窗口方法的思想,只是在对滑窗进行文本和非文本分类的时候使用 CNN 提取的特征而不是人工设计的特征。虽然能提高分类性能,但计算量大以及适用范围窄(大部分只能处理水平方向文本)的问题依旧没有解决。在基于深度学习的目标检测和分割等技术的突破性进展的同时,这些方法也为自然场景文本检测提供了新的思路。基于深度学习的自顶向下的自然场景文本检测方法可分为两阶段和单阶段的方法。
-
1)两阶段检测方法。两阶段的方法主要是借鉴了Faster R-CNN(region CNN),R-FCN( region-based fully convolutional network)以及 Mask R-CNN和 FCIS(fully convolutional instance-aware semantic segmenta-tion)等系列两阶段目标检测和分割算法的思想,针对文本不同于通用目标的表现形式进行专门的改进,使之能在文本检测领域取得更好的检测性能。Jademberg 等人首先借鉴了R-CNN框架,利用了EdgeBoxes和聚合通道特征(aggregate channel feature,ACF)等候选区域提取算法,得到单词级别的文本候选区域;然后通过随机森林(random forest)对候选区域进行文本和非文本分类以过滤背景区域,得到的文本候选区域最后通过一个CNN 对边界框回归,得到最终的检测结果。该方法虽然取得了当时不错的性能,但由于各模块是单独优化的,容易造成误差累积,而且EdgeBoxes 和 ACF 提取候选区域时都会存在计算量大的问题。
-
针对这些问题,受Faster R-CNN 的启发,Zhong等人提出的 DeepText 是第一个把该目标检测算法成功应用到自然场景文本检测的工作。该工作使用了基于感知(inception)模块的区域生成网络(inception regionproposal network,Inception-RPN)来代替传统的候选区域提取算法(EdgeBoxes等),大大提高了候选区域的提取效率和质量。然后再通过Fast R-CNN 网络对文本候选区域做更准确的回归和分类,得到最后的检测结果。但是由于 Faster R-CNN 只能预测水平矩形框,因此 DeepText 也无法处理多方向以及不规则文本的自然场景文本检测问题。为了适应文本的不同表现形式,更多的学者基于 Faster R-CNN提出了不同的解决方法。
-
Jiang等人提出的R2CNN(rotational region CNN)为了适应文本的长宽比和方向(水平和竖直),首先使用了多尺度的感兴趣区域池化(region of interest pooling, Rol-Pooling)操作,增加了特征尺寸,然后在 Fast R-CNN 中额外增加了一个分支预测旋转的矩形以及一个针对倾斜框的非极大值抑制后处理算法以解决多方向文本的检测问题 。Ma 等人同样也指出应该用旋转矩形替代水平矩形来进行文本检测。作者提出了旋转候选区域生成网络(rotated region proposal net-work,RRPN),结合旋转矩形的锚点框(anchor)来生成倾斜的文本候选区域。然后设计了旋转感兴趣区域池化(rotated region of interest pooling, RROI Poo-ling)算法为每个倾斜的候选区域从卷积特征图中提取固定尺度的特征以进一步地进行文本和非文本分类。
-
考虑到将 Faster R-CNN 用于文本检测时,矩形锚点框与文本的形状相差过大,会导致区域生成网络( region proposal network,RPN)在生成文本候选区域时效率不高,鲁棒性也不强,Zhong 等人 因此借鉴了 DenseBox的思想,提出了不需要锚点框的区域生成网络(anchor-freeregion proposal network,AF-RPN)。AF-RPN 通过特征图上的滑动点与原图文本中心区域的映射关系来确定特征上的文本滑动点,对于每个这样的滑动点AF-RPN 都会预测其对应的文本边界框位置,从而可以不需要复杂的锚点框计算,直接生成高质量的文本候选区域。
-
上述方法都是主要针对水平和多方向四边形文本而不能检测任意形状(如曲线)的文本。因此Liu 等人用14个点描述不规则文本,在R-FCN 的基础上改进了文本边界框回归模块去预测这 14 个顶点的位置坐标,并通过循环神经网络recurrent neural network,RNN)对候选区域提取的特征进行上下文信息的增强以提高文本检测精度。考虑到之前的方法对于不同形状的文本需要不同数量的点来描述,Wang 等人提出使用RNN去自适应预测不同形状文本实例所需要的多边形顶点数目,并将这个模块结合到Faster R-CNN 中,提高了整个模型的灵活性。
-
Liu 等人提出了条件空间膨胀(conditional spatial expansion,CSE)模块,将不规则文本检测构造成区域膨胀问题,依靠CNN 提取的区域特征和已融合区域的上下文信息进行进一步区域融合得到完整的检测结果。Wang等人同样是基于 Faster R-CNN 设计了自适应区域生成网络(Adaptive-RPN)生成更加准确的文本候选区域,然后增加了一个额外的分支去进行候选区域的文本轮检测以抑制误检情况,极大提高了检测精度,同时也能适应任意形状的文本检测。
-
以上文本检测方法主要是基于主流的两阶段目标检测器 Faster R-CNN。由于文本方向和形状的复杂性,它通常需要设计回归更多的顶点去描述那些多方向以及不规则的文本,这可能会带来误差累积以及额外的计算量。而 Mask R-CNN 和 FCIS 在实例分割领域取得了很大的进步,通过边框或边界点回归预测和像素分类相结合的思路也可以对任意形状的文本进行更方便地描述。Dai 等人便是借鉴这样的思想,预测了文本候选区域的文本实例像素级掩码后,通过基于掩码的非最大值抑制(mask non maximum suppression, Mask-NMS)得到更准确的任意形状文本检测框。
-
Yang等人也是类似的做法,基于 FCIS 的框架通过 Inception-Text模块和可变形 ROI 池化模块去处理多方向的文本。Xie 等人同样是为了解决弯曲文本检测的问题,在 Mask R-CNN 的基础上增加了一个文本语义模块以及文本区域敏感的重打分机制以抑制误检的问题。Xiao 等人考虑到普通卷积对不规则文本的采样效率偏低,在Mask R-CNN 中嵌人了序列变形模块(sequential deformable module ,SDM)它能沿着文本方向进行特征采样,此外通过一个Seq2seq模型对采样过程进行限制,使之能更准确地检测不规则文本。
-
Liu 等人则是为了解决数据标注顺序歧义性的问题,提出了包围盒分解网络(box discretization network,BDN),将四边形标注框的点顺序分解成由顺序无关点组成的关键边,并通过匹配类型学习从学习到的关键边中重建四边形检测框。如下图所示,整个网络也是基于 MaskR-CNN 进行搭建,这样可以更好地处理任意方向的文本,不过对于不规则文本,BDN 并不能进行很好地检测。liu 等人则是考虑到若将文本检测视为实例分割问题,采用的分割标注是直接根据文本框得到,这会使得部分背景像素被划分为正样本,从而增加训练的噪声,导致训练不稳定。于是舍弃 Mask R-CNN 中简单的(0,1)二值预测方案,根据文本中心点到边界的距离为像素分配[0,1]中的值作为弱标签进行训练,减少了文本边界错误标注像素带来的训练噪声,从而提高文本的检测性能。
-
两阶段场景文本检测方法---BDN
-
2)单阶段检测方法。除了上述 RCNN 系列的两阶段检测器,很多单阶段的目标检测器如 YOLO(you only look once)系列和SSD( single shot multiboxdetector)也被学者们应用于自然场景文本检测。Gupta 等人基于 YOLO 模型:对不同尺度的图像使用全卷积网络定位文本的位置。基于 SSD 的方法则有以下的一些工作。如图4 所示,Liao 等人提出了 Text-Boxes,该算法针对自然场景文本的特性,设置了适应性的锚点(Anchor),考虑到文本长宽比与通用目标差别过大便采用了长条形的卷积核,它能对水平文本取得不错的检测性能。这些学者进一步提出TextBoxes ++,增加了角度预测以适应多方向文本的检测。
-
**
**
-
单阶段场景文本检测方法---TextBoxes
-
He等人加人了文本注意力机制,通过强化文本部分的特征加强其分类和边界框回归,同时他们设计了一个多级特征融合模块以适应文本的尺度变化。Liu和Ji也是基于相同的框架提出了深度匹配先验网络(deep matching prior network, DMPNet),首次使用四边形锚点框来替换原来的矩形锚点框,实现了多方向文本检测。Liao 等人针对多方向文本这一问题,使用了方向响应网络(oriented response network,ORN)取代融合SSD中不同尺度特征的侧边连接。ORN可以提取旋转的文本特征以适应不同方向的文本实例,然后在每个侧边连接提取特征后进行分类和边界框回归。
-
除了基于 SSD 和 YOLO 这类需要锚点框的单阶段方法之外,还有很多是借助文本的一些几何属性进行建模并利用全卷积神经网络的单阶段文本检测方法。Zhou 等人借鉴了 DenseBox的架构和 U-Net的特性提出了EAST(efficient and accurate scene textdetector)算法,结构如下图所示。它先在每个像素位置预测是否有文本,如果有则直接预测该像素点对应文本实例的得分图和边界坐标。He等人提出的 DDR(deep direct regression)算法思想和 EAST 相似,不过 DDR 是直接学习4 个边界点对于有文本像素点作为文本实例中心点的偏移量而 EAST 是回归点到边框的上下左右距离。类似的方法还有 Xue 等人提出的 Border,不过它除了进行文本和非文本分类以及边框回归的同时,还增加了对 4 条文本框边界的学习和预测。Wang 等人提出了一个实例变换网络(imnstancetransformation network,ITN)去学习自然场景文本的几何属性表达,以适应任意四边形文本行的检测。
-
单阶段场景文本检测方法---EAST
-
针对不规则文本的检测,Long 等人提出的 TextSnake是首个单阶段解决此类问题的工作。它先利用一个全卷积神经网络预测文本区域、文本的中心线以及几何属性(角度、半径等),然后通过这些属性重建整个文本实例。Zhang等人提出的 LOMO( look more than once)是在 EAST 算法思想的基础上额外增加了一个迭代优化模块和形状表征模块,分别加强对长文本以及对不规则文本的检测。而 Wang 等人提出的 SAST( single shot arbitrarily-shaped text detector)同样也是 EAST的演进版本,他们也借鉴了 TextSnake 的思想,在直接回归边界框的同时加入了对文本一些几何特征的预测(文本中心线区域、文本边界偏置和文本中心点偏置等),使之能适用于不规则的文本检测。考虑到文本多尺度的问题,Xue 等人提出了多尺度形状回归网络(multi-scale regression,MSR)去检测不同尺度的任意形状文本。MSR分别预测文本中心区域、中心区域的点到最近边界的横向和纵向距离,最后通过后处理得到文本边框。
-
自底向上的自然场景文本检测方法
-
自底向上的自然场景文本检测方法主要是借鉴传统的文本检测方法的思想,先通过卷积神经网络检测出基本的文本组件,然后通过一些后处理的方式将文本组件聚集成一个完整的文本实例 。此类方法可以进一步划分为像素级别的方法(基于分割的方法)和文本片段级别的方法。
-
1)像素级别的自底向上方法。像素级别的文本检测方法通常借鉴物体语义分割和实例分割的思想,利用全卷积神经网络(fully convolution network FCN)对图像中的每个像素点进行文本和非文本分类,从而得到文本区域掩码图(Mask)。然后通过一些像素聚合的后处理方式将属于同一文本的文本像素点聚合在一起得到最后的文本实例边界框。上述部分自顶向下的方法虽然也借鉴了分割的思路,但同时也结合了整个文本边界框的回归,而像素级别的自底向上方法则完全依靠像素级别的分类和后处理得到文本检测的结果。这类方法可以比较轻松地描述任意形状的文本,但后处理会比较复杂,而且对密集型文本做文本区域的掩码图预测时容易发生重叠,不容易将不同文本实例分开。
-
针对此问题,许多学者都提出了不同的解决方案。Zhang 等人的工作首次将文本像素分类预测用于自然场景文本检测任务当中,该方法首先通过一个 FCN 预测得到文本区域的分割显著图。然后利用 MSER 检测算子在文本区域内提取候选字符。最后通过字符投影的一些后处理方法连接字符区域生成文本行检测结果。Yao 等人利用 FCN 同时预测文本行区域、单字符区域以及字符连接方向,对在同一个文本区域的字符构建一个图利用字符之间的位置和方向的相似度把图划分成若干子图,每个子图都对应着一个文本实例。He 等人级联了两个 FCN,第1个FCN 预测整个文本粗略的显著图,第2个FCN 则是预测文本的中心区域以区分不同的文本。这种从粗糙到精细的分割方式对于不同尺度和分布的文本检测都会有比较好的泛化性能。
-
同样为避免文本黏连,Wu和 Natara-jan提出了文本边界学习( border learning)除了文本和非文本的像素分类之外,还预测了文本的边界区域。Zhu 和 Du提出的 Text Mountain也是为了解决类似的问题,他预测文本中心到边界像素点的概率分布而不是单纯地对文本区域和非文本区域做二分类。Deng等人提出的PixelLink 则是预测像素点与相邻的8个像素点之间的连接关系(若两个像素点都属于同一文本区域,则两者判定为连接关系),基于这样的信息可以有效组合属于同一文本的像素点。Xu 等人考虑到相邻的属于不同文本的像素在各自文本实例中的相对位置不同提出了 TextField,利用这样的方向场( directfield)去预测 2 维的相对位置向量,根据方向有效区分邻近的像素点从而抑制文本粘连。
-
同样是考虑到中心区域能比较好地划分不同文本这一思想,Wang等人提出了一种对文本实例实现多级预测的渐进式尺度扩张网络(prgressive scale expansion net-work,PSENet)。先利用 FCN 对每个文本实例进行像素级别分类以及对多个不同尺度的文本中心区域(文本核)进行预测,然后通过渐进性尺度扩张算法得到文本实例分割的结果。但是PSENet的后处理很复杂,模型的前向预测效率比较低,于是作者又提出了像素聚集网络(pixel aggregation network,PAN)。PAN 设计了一个轻量化的特征提取和融合网络,除了预测文本区域和文本核外,还预测一个像素相似向量,根据向量预测结果引导文本像素聚合到正确的文本核以得到不同文本实例检测结果。所以这个后处理方式是可学习的,检测效率也远高于 PSENet。
-
此外,Tian 等人的工作也是类似的思想,都是对每个像素点学习一个嵌入式相似向量,属于同一文本的向量会尽可能接近,反之远离,通过这样的方式分离不同的文本实例。类似地,考虑到基于像素分类的方法其复杂的后处理影响检测效率的问题,Liao 等人提出了可微分二值化(differentiable binarization,DB)的方法,结构如下图所示。常规的基于像素分类的检测方法通常使用固定阈值对分割图进行二值化处理,而 DB 则是将二值化操作嵌入网络,除了学习文本区域的显著图之外,还会预测对应的阈值图,通过两者结合生成最后的结果,大大提高了后处理的效率和模型前向推理速度。
-
像素级别场景文本检测方法---DB
-
2)文本片段级别的自底向上方法。文本片段级别定义为字符或者文本的一部分,这类文本检测方法通常是利用目标检测算法从图像中检测出这样的文本片段。然后根据特征相似性,通过一些后处理算法把检测出的文本片段拼接成完整的文本实例。因此,如何鲁棒地把文本片段拼接成文本实例是这一类方法的难点。Tian 等人提出了文本区域连接网络(connectionist text proposal network,CTPN),它借鉴了 RPN 的思想,首先提取文本片段级别的候选区域,然后通过后处理的方法将这些候选区域拼接成一个完整的文本实例。该方法最大的特点在于,在特征提取的时候加人了双向长短期记忆网络( Bi-LSTM)(bidirectional long short temm mem-ory network)进行序列建模,这能有效解决长文本检测的问题,但CTPN只能检测水平方向的文本。
-
Shi 等人借鉴了 CTPN 的思想,提出了可以实现任意方向自然场景文本检测的 SegLink 算法,如下图 所示,它基于单阶段目标检测器 SSD 对文本片段进行了检测,同时还预测了各片段之间的连接关系,根据这样的连接关系将文本片段组合成最后的文本实例 。但是,该方法在面对密集型文本时,连接关系的预测可能会发生错误。于是,Tang等人在SegLink 的基础上提出了 SegLink++算法,它通过学习文本片段之间的互斥连接(repulsive link)对文本片段的连接关系进行分类,互斥连接的加入可以有效避免相邻文本实例的粘连。这两个算法所谓的连接关系指的都是判断检测到的文本片段是否属于同一个文本实例。
-
文本片段级别场景文字检测方法---SegLink
-
Lyu 等人则是提出了使用角点检测生成候选的四边形检测框,同时在整图级别进行逐像素分类得到文本的位置得分,随后两个结果相结合输出最后的文本检测结果。Liu 等人提出的CENet(character embedding network)与上述PAN等方法思想类似,通过对每个字符学习一个嵌人式向量(character embedding),在训练过程中使在同一个文本实例内部的字符的嵌人式向量尽可能地接近,反之则尽可能地远离,通过这种方式可以把属于同一个文本实例的字符区域聚合在一起。
-
Hu 等人也是提出先检测单个字符区域,然后基于一些固定规则将这些字符拼接成任意方向的文本实例。常用的拼接规则有文本片段之间的水平和竖直方向距离以及尺度和方向的相似性等。由于单字符标注比较少而且标注成本也比较高,该方法第一次提出通过弱监督的方式得到自然场景文本单字符检测结果的算法 WordSup。
-
同样为了得到单字符的检测结果,Tian 等人提出的WeText 也是基于 SSD 提出的一个弱监督的框架,得到了单字符检测结果之后和 Hu等人的方法一样通过规则进行拼接。但该方法只能用于检测水平方向的文本,泛化性能比较差。Hu 等人提出的弱监督的算法也被 Baek 等人改进并应用到他们的 CRAFT( character region awareness for text detection)算法中,它通过类似的方式得到单字符的标注,然后通过高斯分布建模学习单个字符的中心概率以及字符之间的连接关系(character affnity)再通过连接关系将各字符连接在一起获得文本行检测结果。这个方法由于需要预测连接关系,所以会对单字符的检测有一定影响。
-
对于文本片段是否属于同一文本实例的判断,Zhang 等人提出的DRR( deep relational reasoning graph network)通过图网络的方式进行预测,该方法首先检测文本片段,然后对这些片段构建局部图,通过深度关系推理网络得到它们的连接关系,并根据此关系连成各个文本实例。
-
自然场景文本识别
- 自然场景文本识别是对检测得到的裁切自然场景文本图像中的文本进行识别并输出相应的字符串序列。自然场景文本识别算法大致可以划分为两大分支:基于分割和无需分割的自然场景文本识别算法,其发展历程如图8所示。
-
基于深度学习的自然场景文本识别发展历程
基于分割的自然场景文本识别算法
-
基于分割的识别算法是自然场景文本识别算法的一个重要分支,通常包括3个步骤:图像预处理、单字符分割和单字符识别 。基于分割的自然场景文本识别算法通常需要定位出输人文本图像中包含的每个字符的所在位置,通过单字符识别器识别出每一个字符,然后将所有的字符组合成字符串序列,得到最终的识别结果。
-
一个早期的自然场景文本识别系统 ,以单字符的得分和位置作为系统输人,利用图形模型从一个特定的词典中找到与识别结果相对应的最佳匹配文本,将其作为最终的识别结果。该方法不仅在识别性能上超过了当时最领先的商用OCR 系统 ABBYY,同时也莫定了自然场景文本识别领域的基准性能。受启发于深度卷积神经网络在视觉理解任务的成功应用,堆看多层神经网络的无监督特征学习方式被广泛应用于自然场景文本识别任务,用以训练一个高性能的字符识别模块。特别地,字符间距算法或集束搜索beam search算法被用于处理后续字符串转录,从一个特定的字典中匹配到最佳的识别结果。
-
为了进一步改善自然场景文本识别算法的识别性能,尺度不变特征变换(scale-invariant featuretransform,SIT)描述子、笔画及中级视觉特征等算法被用于提取更鲁棒的文本图像视觉特征表达,具体而言,与 Wang 等人不同,Phan 等将基于分割的识别算法中的单字符识别任务视为寻找字符集与特定字典的最佳匹配任务,通过在任意方向上提取文本图像的尺度不变特征变换描述子,获取图像特征表达,用于后续的自然场景文本识别,Yao 等人为单字符识别器设计了一个新颖的特征表达,即笔画(Stokelets),可以通过字符边框位置由深度神经网络自动地学习得到,并从多个像尺度上捕获字符的结构特征。经过大量的实验验证及可视化分析得出,笔画特征在鲁棒性、泛化性和可解释性上都显著优于传统的特征描述子。
-
上述提到的算法均依赖于字典匹配获取最佳的识别结果。然而,算法的搜索时间与字典的规模相关。随着待匹配字典规模的增加,算法的搜索空间也大大增加,因此,依赖于字典匹配获取最佳识别结果的自然场景文本识别算法很难直接应用于实际的应用中。为了解决上述难点,无字典约束的自然场景文本识别算法开始被广泛探索。Mishra等人利用大规模的字典作为高阶统计语言模型,克服了需要特定字典来匹配识别结果的缺点实现了无字典约束的自然场景文本识别。其他研究人员则利用更大规模的数据和更复杂的网络结构,例如 Maxout 网络等改善无字典约束的自然场景文本识别算法的识别性能。
-
尽管基于分割的自然场景文本识别算法从识别性能和泛化性能上都明显优于传统文本识别算法,但基于分割的自然场景文本识别算法要求精准的字符分割结果。特别地,字符分割被视为计算机视觉领域最具挑战性的研究课题之一。因此,基于分割的自然场景文本识别算法的识别性能高度依赖并受限于单字符分割的性能,
无需分割的自然场景文本识别算法
- 自然场景文本识别算法的另一个重要分支是无需分割的识别算法。无需分割的自然场景文本识别算法旨在将整个文本行视为一个整体,直接将输人的文本图像映射为目标字符串序列,从而避免了单字符分割的缺点和性能限制,此类方法也是当前的主流方法。无需分割的自然场景文本识别算法如下图所示,通常包括4个阶段:图像预处理阶段、特征提取阶段、序列建模阶段和预测转录阶段 。
-
无需分割的场景文本识别算法流程
图像预处理阶段
-
图像预处理阶段旨在提升输人图像的质量,从而改善后续文本图像特征表征,降低识别难度。常用的图像预处理算法包括:背景擦除、超分辨率和不规则纠正等。
- 1)背景擦除。自然场景文本大多具有十分复杂的背景,且背景中的部分纹理特征与文本特征从视觉上看是十分相似的,这大大增加了自然场景文本识别的难度。除了建模更加复杂精密的特征提取阶段和合成背景复杂的文本数据外,一个简单且直接的方法是将文本从复杂的背景中剥离。尽管传统的图像二值化方法针对文档图像具有较好的处理性能,但这类方法很难处理自然场景文本复杂多变的字体风格和多种环境噪声干扰。Luo 等人利用生成对抗网络移除背景,保留文本特征。该方法大大降低了后续识别网络的难度,并显著改善了识别性能。
- 2)超分辨率。自然场景文本通常受到多种环境噪声的干扰而呈现低分辨率的特点。较低的分辨率会加大后续识别网络出现误识别及字符缺漏的风险。图像超分辨率算法能够根据给定低分辨率的图像有效输出对应的较高分辨率的图像,降低后续识别网络的识别难度 。传统的超分辨率算法,如双线性插值、双三次插值等,旨在重构整幅自然场景文本图像的纹理特征,并不完全适用于低分辨率的自然场景文本。相比于简单地将自然场景图像超分辨任务视为回归任务,研究人员采取多任务的网络结构设计,将超分辨率与自然场景文本识别任务有机结合,显著改善了自然场景低分辨率文本的识别性能。
- 3)不规则纠正。不规则纠正的目的在于规范化输入的自然场景文本图像,将不规则的文本排布恢复为常规的水平平直文本,从而降低后续识别网络的识别难度。不规则自然场景文本是指含有透视变换或不规则排布的自然场景文本。空间变换网络作为早期的纠正模块,常被用于纠正整幅自然场景文本图像 或单字符区域的文本图像 。Shi 等人应用薄板样条插值(thin platespline,TPS)算法处理更加复杂的文本形变。越来越多精细设计的纠正网络被提出例如,Luo 等人通过预测输入自然场景文本图像不同区域的偏置,设计了一个多目标的像素级自然场景文本图像纠正网络。Zhan 等人为了改善自然场景文本图像纠正性能,提出了一个新颖的线性拟合变换和一个迭代的基于薄板样条插值的纠正网络。Yang 等人基于图像属性(中心线、尺度和旋转方向等)提出了一个对称性限制的自然场景文本图像纠正网络。
-
为了处理多变的文本噪声,越来越复杂的图像预处理模块设计已经成为一种新的行业趋势。然而,复杂的模块设计除了带来识别性能的提升,也意味着时间和内存的大量消耗。研究人员应该根据实际的应用场景理性权衡评估算法的性能和速度需求。随着不规则文本检测技术的迅猛发展,自然场景文本识别算法中的不规则纠正模块是否是解决文本排布规则的唯一方案值得思考。
-
图像预处理包括且不限于上述内容,不同处理算法间可以叠加使用。图像预处理能够通过改善输人自然场景文本图像的质量,显著地提高后续识别网络的识别性能。虽然近年来自然场景文本识别算法获得了迅猛发展,但是上述基础的图像预处理方案却很少在领域中应用。因此,设计更加精巧的图像预处理算法值得研究人员及相关从业人员的关注。
特征提取阶段
- 特征提取阶段旨在将输入的自然场景文本图像映射为鲁棒的高级视觉特征表达,强调待识别字符特征,抑制无关背景及属性特征,如字体、颜色和尺度等。
- 早期,Su 和 Lu 应用方向梯度直方图(HOG)特征描述子构建自然场景文本图像的序列文本特征。得益于视觉理解等任务的成功应用,深度卷积神经网络及其变体广泛地应用于特征提取阶段,例如VGGNet( Visual Geometry Group Network)。为了获得更强大的视觉特征表达,更多精心设计的、复杂的神经网络相继应用于自然场景文本识别领域,如残差神经网络和 DenseNet等。研究人员尝试从多个不同的角度改善特征提取阶段的特征表征。
- 例如,Lee和 Osindero应用递归卷积神经网络建立参数高效的特征表征。相比于传统的卷积神经网络而言,递归卷积神经网络能够在相同的参数规模下,建模更加紧凑的特征空间。受启发于循环卷积神经网络在图像分类中的成功应用,Wang 和 Hu设计了一个门控循环神经网络,通过控制识别模型内部视觉特征的信息流动,改善自然场景文本的序列特征表征。不同于上述算法,Liu 等人专注于实时的自然场景文本识别,并提出了新颖的二进制卷积神经网络层。经过大量的实验验证,二进制的特征表征显著加快了推理速度,降低了内存消耗。一些研究认为,直接使用深度卷积神经网络在原始自然场景文本输入图像上进行特征提取会引人大量的额外噪声,从而增加后续识别网络的识别难度。因此,将深度卷积神经网络与注意力机制相结合,强化有效的前景文本区域,弱化背景噪声。
- 特别地,Liao等人提出的基于空间注意力模块的识别分支在与检测分支结合后,可进一步达到端到端自然场景文本检测与识别系统的领先水平。近期,Zhang等人利用网络结构搜索确定特征提取阶段的网络结构,改善自然场景文本识别算法对于丰富多样的输入文本图像的泛化性。
- 更深的网络结构以及更先进的特征提取算法通常会带来更好的图像特征表征,改善具有复杂背景的自然场景文本识别算法的识别性能。然而,识别性能的提升往往以大量的计算及内存消耗为代价。在未来的领域研究中,背景擦除的图像预处理算法与相对简单的特征提取器的结合也许是改善复杂背景的自然场景文本识别算法识别性能的有效方案。
序列建模阶段
- 序列建模阶段,作为视觉特征表征阶段与转录解码阶段的衔接桥梁,旨在建模字符与字符之间的语义相关性,捕获序列文本间的上下文信息 。多层双向长短期记忆网络能够捕获长期的上下文依赖关系,常作为序列建模模块广泛地应用于自然场景序列文本识别算法中。Litman 等人通过在不同网络深度增加监督信息,成功地堆叠了多层双向长短期记忆网络,改善了上下文信息即语义信息的建模过程。然而,一些研究人员认为双向长短期记忆网络或许不应该成为自然场景文本识别算法的必需组成部分。尽管双向长短期记忆网络能够有效地建模上下文信息,但其递归的网络结构耗时严重,还可能引起训练过程中的梯度消失及梯度爆炸问题。因此,部分研究人员选择滑窗或深层一维卷积神经网络代替双向长短期记忆网络建语义信息。尽管在早期的领域研究中,深度卷积神经网络广泛应用于提取视觉特征表征,但深度卷积神经网络也可以通过精准地控制感受野范围建模语义特征。近年来,一些研究人员更多地专注于建模全局语义信息。Yu 等人通过多路并行传输,设计了一个全局语义推理模块捕获全局语义信息。Qiao 等人借助自然语言处理领域强大的预训练模型作为监督信息,指导语义特征的学习。
- 语义特征对于基于图像的自然场景文本识别任务而言是十分重要的。尽管基于循环神经网络及其变体的网络结构,例如长短期记忆网络和双向长短期记忆网络,能够有效地建模语义信息,捕获长期的上下文依赖关系,但它仍然存在一些局限性。相反,深度卷积神经网络或 Transformer结构通过精准的感受野设计,不仅能够建模文本的语义信息,而且能够高效地并行处理。通过深度券积神经网络或 Transformer 结构建模自然场景文本的语义信息也许将成为领域内的新趋势。
预测转录阶段
-
预测转录阶段旨在将自然场景文本图像特征向量解码为目标字符串序列。预测转录阶段根据选用解码器的不同,大致可以分为基于时序连接序列connectionist temporal classification,CTC)解码的自然场景文本识别算法和基于注意力机制解码的自然场景文本识别算法两大类。
-
1)基于时序连接序列(CTC)的自然场景文本识别算法。时序连接序列(CTC)算法早期由Graves等人提出,用以训练循环神经网络,并直接标记未分割的特征序列。CTC算法在多个领域均证明了它的优异性能,例如语音识别和联机手写文本识别。对于自然场景文本识别而言.CTC算法通常作为转录层,通过计算条件概率将深度卷积神经网络或循环神经网络提取的特征序列直接解码为目标字符串序列。
-
得益于CTC算法在语音处理领域的成功应用些研究人员率先将其应用于自然场景文本识别算法中以改善解码性能。例如,Shi 等人将自然场景文本识别任务视为序列识别任务,并提出了一个可端到端训练的网络模型 CRNN(convolutional re-current neural network),其结构如图 10所示。该方法不仅无需逐字符分割的繁复操作,而且充分结合了深度卷积神经网络和循环神经网络的优点,有效改善了自然场景文本识别算法的性能。
-
CRNN 结构图
-
此后,大量基于 CTC算法解码的自然场景文本识别算法 展现出了优秀的识别性能。然而,一些研究人员 认为CTC算法趋向于产生高度尖锐和过度自信的预测分布,这是过拟合的表现。为了解决上述难点,Liu 等人 引人最大条件熵的正则化项增强其泛化性,并鼓励 CTC算法探索更多可行的有效路径。Feng 等人 将CTC 算法与焦点损失函数相融合,以解决样本类别极度不均衡的自然场景文本识别问题。H 等人 应用图卷积神经网络改善基于CTC算法解码的自然场景文本识别算法的识别精度和鲁棒性。
-
虽然 CTC 算法具有很好的解码性能,并进一步推动了自然场景文本识别领域的发展,但是它也面临着一些局限性:
- (1)CTC 算法的底层理论基础相对复杂,直接应用 CTC 算法解码将会造成很大的计算消耗;
- (2)CTC算法容易产生高度尖锐和过度自信的预测分布,当出现重复字符时解码性能下降;
- (3)由于 CTC算法自身结构和实现方式的限制,它很难应用于2维的预测问题,例如不规则的自然场景文本识别问题(不规则的自然场景文本识别是指待识别的文本在自然场景文本图像中的分布呈现特殊的空间结构而非水平方向)。
-
为了解决 CTC 算法无法应用于不规则的自然场景文本识别任务,Wan 等人通过沿着高度方向增加维度,扩展原始的 CTC算法。尽管该方法在一定程度上改善了识别性能,但是并没有从根本上解决CTC 算法应用于二维预测任务的难点。因此,基于CTC的自然场景文本识别算法仍然存在使用场景的限制。将 CTC算法应用于解决2维预测问题是未来领域研究中一个有潜力的研究方向。
-
2)基于注意力机制的自然场景文本识别算法。注意力机制由 Bahdanau 等人提出,早期用于改善机器翻译算法的性能。注意力机制以人类的注意力特点为原型,即当人们在观察事物时,目光往往聚焦到感兴趣的事物上而忽略无用信息的干扰 。同样地,注意力机制可以自动地分配不同时刻的权重达到"注意"的目的。在机器翻译领域,注意力机制的特点是可以自动搜寻并高亮与当前预测词相关的句子成分,辅助生成预测词。近年来,注意力机制在多个领域都取得了优异的性能,例如图像描述 、文本识别 和遥感图像分类 等。对于自然场景文本识别而言,注意力机制常常与循环神经网络结合使用,作为转录层,生成目标字符串序列。
-
受启发于机器翻译领域注意力机制的成功应用,大量基于注意力机制解码的自然场景文本识别算法 得到广泛研究。相关算法大致包括:
- (1)应用注意力机制解决二维的预测问题。对于不规则的自然场景文本识别而言,文本字符的不规则排布显著增加了识别的难度。注意力机制能够通过高亮字符所在位置的特征,有效弥补不规则文本和水平平直文本之间的特征差异。因此一些研究人员 提出了2维的注意力机制,用于改善不规则自然场景文本识别问题。
- (2)改善隐式语言模型的建模过程。一些研究认为注意力机制解码算法中的 glimpse 向量不足以表征待预测字符的特征。因此,Chen 等人设计了自适应的门控机制,通过引入高阶统计语言模型作为监督信息,改善注意力机制内部字符级隐式语言模型的建模过程,Wang 等人通过加入历史预测字符的特征,构建了记忆力增强的注意力机制,改善自然场景文本识别算法的识别性能。Shi等人认为常规的基于注意力机制的预测转录模块只能捕获单一方向的语义信息,因此提出了 ASTER( attentional scenetext recognizer with flexible rectification),它使用了双向的注意力解码器以捕获两个方向的互补语义特征,其网络及双向的注意力解码器结构如图11所示。
- (3)并行处理优化、降低计算复杂度。虽然基于循环神经网络结构的注意力机制能够捕获长期的上下文信息,但是计算量大、耗时较多。因此,一些研究应用注意力机制的变体,即 Transformer,来改善注意力机制的并行处理,降低基于注意力机制解码的自然场景文本识别算法的计算复杂度。
- (4)解决注意力漂移问题。注意力漂移问题是指注意力机制不能准确地定位到与当前解码位置相对应的文本图像特征序列。一些研究增加额外的监督信息改善注意力漂移现象。Cheng等人提出了专注注意力网络。该方法通过在注意力机制中引人单字符位置监督,引导识别器学习待解码字符与对应的文本图像特征序列的对齐关系。Yue 等人增加了位置强化分支,将语义信息与位置信息特征融合解码。该方法不仅改善了注意力漂移问题,而且改善了识别模型对于非语义文本的泛化性,部分研究人员通过级联注意力模块的方式缓解注意力漂移现象。特别地,Wang等人认为注意力漂移现象源于循环神经网络的递归结构。因此**,他们将注意力机制的对齐操作从参照历史解码信息过程中解耦出来。该方法有效缓解了长文本的注意力漂移问题,进一步改善了自然场景文本识别性能**。
-
ASTER 结构图
-
基于注意力机制的自然场景文本识别算法已经逐渐成为领域的主流解码算法,并展现了优于其他传统方法的优越性能。相比于CTC算法,注意力机制不仅进一步提升了自然场景文本识别算法的识别性能,而且可以很容易地扩展到2维的预测问题上例如不规则自然场景文本识别任务。然而,注意力机制也面临着一些局限性:
- (1)注意力机制需要计算文本图像特征与预测字符之间的对齐关系,这会引入额外的存储消耗。
- (2)对于较长的输人文本图像而言,注意力机制很难准确地预测出目标字符串序列。因为注意力机制存在漂移现象,一旦出现对齐错误,后续的文本很难正确识别。
- (3)领域中基于注意力机制解码的自然场景文本识别算法主要集中于字符类别数量较少的语种,例如英文和法文。对于拥有大类别字符数量的语种,例如中文,较少获得领域内研究人员的关注。
-
3)关于基于时序连接序列(CTC)的自然场景文本识别算法与基于注意力机制的自然场景文本识别算法的讨论。时序连接序列算法和注意力机制都有其各自的优点和局限性。一些研究 致力于探索 CTC 算法和注意力机制的有效结合,以求更高的识别性能、更快的推理速度。Cong 等人在大规模的自然场景文本识别任务上对比了两种解码算法的性能。经过大量的实验验证及可视化分析,研究人员认为基于CTC的自然场景文本识别算法更适用于篇幅级别的文本识别任务,而基于注意力机制的自然场景文本识别算法更适用于单词级别的文本识别任务。因此**,研究人员和相关从业人员应该根据不同的应用场景,权衡速度和识别性能,理性选择适合的解码算法。此外,探索可以代替CTC算法和注意力机制的解码算法,是在未来领域研究中可供考虑的研究方向。如一些研究 曾提出集合交叉熵损失函数代替CTC算法和注意力机制**。该方法不仅识别精度高,而且推理速度更快、内存消耗更低。
-
其他方法
- 些研究人员从其他角度看待自然场景文本识别任务,提出了很多有潜力的识别算法。受启发于"整体信息量高于局部信息量之和"的思想,Goel等人通过权重动态时间弯曲(weighted dynamic time warping,WDTW)算法将自然场景文本识别任务视为自然场景文本图像特征与相应的合成文本图像特征的匹配任务。Almazán等人和Rodriguez-Serrano 等人将自然场景文本识别任务看做最近邻问题。这类方法通常将输人自然场景文本图像特征与对应的文本标注编码送人向量空间或欧氏空间中。具体而言,代表相同文本的输人自然场景文本图像与对应的文本标注间的距离应该更近。
- Jaderberg 等人认为自然场景文本识别任务是一个多分类的问题。他们通过900万幅合成文本图像样本训练了一个深度卷积神经网络分类器,每一个单词对应一个输出类别。该方法的局限是无法识别非单词的文本样本。随后,他们进一步将深度卷积神经网络与条件随机场结合,以尝试解决无字典约束的自然场景文本识别问题。该方法在自然场景文本识别的标准评测数据集上达到了当时的最佳识别性能。Zhang 等人将自然场景文本识别问题视为标准字体模板与输人文本图像的特征匹配问题。该方法能够实现单样本的序列识别任务且有效泛化到从未见过的字体上。
端到端自然场景文本检测与识别
-
基于深度学习的可端到端训练的自然场景检测与识别算法(text spotting)由于其简洁高效且统一的结构,逐渐取代了过去将检测与识别分阶段训练然后拼接在一起的方案,成为自然场景文本检测与识别的主流研究方向之一。端到端自然场景文本检测和识别网络一般都共享特征提取分支,根据提取的特征进行文本检测,然后将检测得到的文本特征送人识别模块进行文本识别。目前的主流算法也可以分成单阶段和两阶段两大类,其发展历程如图12所示。
-
基于深度学习的端到端自然场景文本检测与识别方法发展历程
-
两阶段的方法都是基于目标检测和实例分割中常用的算法 Faster R-CNN 和 Mask R-CNN。Li 等人提出了第1个基于深度学习的端到端自然场景文本检测和识别算法,该方法基于FasterR-CNN 进行检测,将通过 RoI-Pooling 提取的共享特征送人基于注意力机制(Attention)的识别器进行文本识别,但该方法只能检测识别水平方向的文本。Lyu 等人基于 Mask R-CNN 提出了 MaskTextSpotter,该方法在 RoI-Align 之后额外增加了一个单字实例分割的分支,对文本的识别也是依赖于该分支的单字符分类。它能够检测并识别任意形状的文本,但训练的时候需要依赖字符级别的标注。作者后续在这个工作的基础上提出了MaskTextSpotter v2,它加人了基于 Attention机制的序列识别分支以提高识别器性能,其结构如图 13 所示。
-
两阶段端到端文本检测与识别方法---Mask Text Spotter v2
-
Qin 等人也是在 MaskR-CNN上进行改进,在预测出分割结果和文本最大外接检测框之后通过 RoI Masking 的操作得到只有文本区域的特征图送入文本识别网络。后来Liao 等人考虑到 RPN 得到的文本候选区域对于任意形状的文本不鲁棒,于是提出了 MaskTextSpotter v3,它首先设计了一个 Anchor-free 的分割区域提取网络(segmentation proposal networkSPN)替代 RPN 预测任意形状文本的显著图,然后根据每个文本的掩码 mask 进行 Hard RoI Masking操作,得到该文本的特征并送人识别网络,检测和识别分支的设计思路都沿用作者之前的MaskTextSpotter v2 .
-
两阶段的端到端文本检测识别算法的性能通常受到 RoI-Pooling 等特征对齐操作的影响,所以很多学者也提出了单阶段的方法。Liao 等人提出的 TextBoxes和 TextBoxes + +都是基于单阶段目标检测器 SSD进行改进,在得到文本检测框之后送人CRNN进行文本识别。其中TextBoxes 只能识别水平文本,而 TextBoxes ++由于加人了角度预测所以能识别任意方向的四边形文本。He等人使用 EAST 算法先检测到任意方向的文本然后通过 Text Align 层在检测框内进行采样得到文本区域特征送人识别分支进行识别。Liu等人提出的FOTS( fast oriented text spotting)也是和 He 等人的思想类似,同样使用 EAST 作为检测分支,不同之处在于 FOTS 是通过 Rol rotate 转换任意方向文本的特征送人识别器进行文本识别。
-
Xing等人提出的 CharNet 则是和 Mask TextSpotter一样使用单字符实例分割作为识别单元,检测单元则是基于单字检测和文本行检测的结合。此外CharNet 引人了和 CRAFT 类似的迭代字符检测方法以得到单字检测结果,提高端到端的性能。基于文本组件的方法还有 Feng 等人提出的 Text-Dragon,它不需要与 CharNet 一样的单字符级别标注,其检测分支先检测文本的任意四边形组件,然后通过 Rol slide 操作与 CTC算法结合进行文本识别。Qiao 等人提出的 TextPereeptron 基于分割的方法对任意形状的文本进行检测,然后通过一个形状变换模块(shape transfom module)将检测到的文本区域矫正成规则形态并送人识别分支。
-
Wang等人的工作则是通过检测任意形状文本的边界点,并通过 TPS 变换对文本进行矫正,然后送人识别分支输出最后的结果。Liu 等人基于不需要锚点框(anchor-free)的单阶段目标检测器 FCOS(fully convolutionalone-stage object detector)提出了ABCNet(adaptive Bezier-curve net-work),用三次贝塞尔曲线对不规则文本进行建模,通过学习贝塞尔曲线控制点检测文本实例,并提出了Bezier Align更高效地连接检测与识别的特征,极大提高了端到端文本检测与识别的效率和性能,ABC-Net 的结构如图 14 所示。Baek 等人以他们之前自然场景文本检测的工作 CRAFT 为基础,提出CRAFTS,在检测到不规则文本后对区域特征做 TPS变换得到矫正后的文本特征结合单字检测的结果,然后将其送人识别器进行文本识别。
-
单阶段端到端场景文字检测与识别方法---ABCNet
自然场景文本检测与识别方法性能对比
常用公开数据集
- 目前常用于场景文本检测与识别的公开数据集如下。
- ICDAR2013(IC13):该数据集是 2013 年ICDAR(Intemational Conference on Doc-ument Analysis and Recognition)举办的 RRC ( RobustReading Competition)中提出的,它主要包含 229 幅训练图像和 233 幅测试图像,这些图像都是街景招牌路标等清晰的场景文本图像,包含的文本都是水平文本。
- ICDAR2015(IC15):该数据集是 2015 年 ICDAR 举办的 Incidental scene text 竞赛中提出的,主要包含1000 幅训练图像和 500 幅测试图像,场景都是未聚焦的街景或商场图像,包含的文本都是任意方向的四边形文本,而且尺度变化较大。
- COCO-Text : 该数据集来源于微软提供的目标检测数据集 MS COCO(MicmosoftCommon Objects in Context)。总共包含 63 686 幅图像,不过许多图像中包含的文本尺度较小而且不清晰,而且有些图像中并不包含文本。
- MSRA TD500 :该数据集是 2012年由华中科技大学和微软亚洲研究院联合提出,总共包含 500 幅图像,其中的文本都是任意方向的中英文文本。文本的标注都是基于文本行级别进行标注。
- Multi-lingual Text 2017 :该数据集是 2017 年ICDAR 举办的多语种文本阅读比赛所提出的,总共包含 10 000 幅自然场景图像,其中的文本都是任意方向、涵盖9个不同语种的文本。
- Reading Chinese Text on Signboard ( ReCTS ): 该数据集是 2019 年 ICDAR 举办的中文街景招牌文本阅读竞赛提出的,总共包含 20 000 幅训练图像,这些图像都来自城市街景招牌图像,主要是针对多方向中文的检测与识别。
- Total-Text :该数据集针对曲线文本检测与识别问题所提出,包含1255幅训练图像和 300 幅测试图像,主要解决英文曲线自然场景文本的检测识别。
- SCUT-CTW1500 :该数据集由华南理工大学提出,同样也是为了解决曲线文本检测识别的问题。主要包含1000 幅训练图像和 500 幅测试图像,除了英文外,还包含部分中文的曲线文本。
- Arbitrary-shaped Text(ArTs) :该数据集总共包含 10 166 幅图像,在收集了 SCUTCTW1500 和 Total-Text 的所有图像之外,还额外收集了几千幅中英文曲线文本的场景图像。它旨在提高中英文文本检测与识别的泛化能力。
- Large-Scale Street ViewText(LSVT) :该数据集是一个针对任意形状场景文本检测与识别的大规模数据集。主要是针对中文文本包含了 20 000 幅测试图像,30 000 幅全标注的训练图像以及接近 40 000 幅部分标注的训练图像。
- IHT5K-Words(HT5K) :该数据集是一个针对自然场景文本识别的数据集,主要包含了 5 000 幅图像,其中2 000 幅用于训练,其余3 000 幅用于测试。其中的文本大多采集于街景或者原生数字图像。每幅图像配备有一个包含50个词的词典以及一个包含1000 个词的词典。具体而言,词典包括正确标注文本和一些随机选择的词。
- Street View Text(SVT) :该数据集主要用于自然场景文本识别,包含了350幅图像,其中 100 幅用于训练,其余 250 幅用于测试。数据集中部分图像严重受到噪声干扰。每幅图像配备一个包含有 50 个词的词典。
- ICDAR2003(IC03):该数据集是2003年ICDAR举办的 Robust Reading Competition(RRC)中提出的,它主要包含 258 幅训练图像和 251 幅测试图像。在丢弃不包含文本以及少于3个字符的文本图像后,该数据集共含867张裁切的测试样本。每幅图像配备有一个包含50 个词的词典以及一个全词典,其中,全词典包括所有标注文本。
- SVT-P( StreetViewText-Perspective):该数据集主要用于评估含有透视干扰的自然场景文本的识别性能,它包含 238 幅测试图像,共计639幅裁切的测试样本。该数据集基于 SVT 数据集构建,即选择不同角度的相同场景,因此大部分图像都存在严重的透视干扰。每幅图像配备有一个包含 50 个词的词典以及一个全词典。
- CUTE80(CUTE):该数据集主要用于评估弯曲的自然场景文本的识别性能它包含 80 幅较高清晰度的测试图像,共计 288 幅裁切的测试样本。大部分裁切文本图像的背景复杂分辨率低且存在透视干扰等噪声。
自然场景文本检测性能评估
- 由于数据集众多,本节只对比了基于深度学习的自然场景文本检测算法在主要数据集上的实验结果。对于四边形文本,使用了ICDAR2013 和ICDAR2015,性能对比见表1和表2所示。由表格可看出,自顶向下的自然场景文字检测方法Precision会更高,这是因为自底向上的方法往往对于长文本的检测会较差。而对于不规则的文本检测,自底向上的方法则更加灵活,效果也更好 。对于曲线文本,则是采用 'Total-Text 和 SCUT CTW1500,性能对比见表3所示。
场景文本识别性能评估
- 本节对比了各个场景文本识别算法在标准评测数据集上的实验结果,性能对比见表4一表7所示。由表格可以看出,随着深度学习的复兴和迅猛发展,近年来,自然场景文本识别在性能上得到了显著提升。研究人员和相关从业人员正逐渐转向更具挑战的研究课题,如不规则的自然场景文本识别。然而不同的训练数据、测试数据和实验环境使得研究人员很难根据表面的数字直接比较不同算法的性能提升。因此,规范而统一的评测规则亟需研究人员的关注。
端到端场景文本检测与识别性能评估
- 端到端场景文本检测与识别方法也主要在ICDAR2013 ICDAR2015 、Total-Text 和 SCUT CTW1500数据集上对比实验结果。对于四边形文本端到端算法性能对比见表8和表9所示(表8和表9中,S、W、G代表使用3种不同类型的词汇表。S(stong):每幅图像包含的所有单词以及从数据集选取的部分单词组成词汇表(总共100个);W(weakly):包括训练集和测试集所有单词组成的词汇表;G(generic):通用词汇表,共计 90 k 。对于不规则文本端到端算法性能对比如表 10所示。从表格可看出,基于有单字监督的端到端自然场景文本检测与识别算法,比如MaskTextSpotter,CRAFTS,CharNet的效果会更优。但总体来说,此类算法的性能还存在很大提升空间,暂时很难应用于实际场景 。
结语
-
文本在日常生活中扮演着十分重要的角色。 场景文本理解任务具有其独特的现实应用价值和研究挑战性,该任务主要包括自然场景文本检测和自然场景文本识别。本文主要介绍了自深度学习发展以来自然场景文本检测、识别以及端到端文本检测与识别的发展现状和水平,分析了国际国内最新的研究成果,对比总结了不同方法的技术特点和局限性最后列举了本文所介绍的所有方法在主流的公开数据集上的性能。本文描绘了一幅自然场景文本理解领域的研究蓝图,希望本工作对于领域研究人员及未来发展有所助益。
-
基于深度学习的自然场景文本检测方法可以分为自顶向下和自底向上两大类 。自上而下的方法通常借鉴通用目标检测或实例分割的框架,通过回归或回归与分割直接预测整个文本实例,该方法好处是可以比较准确地检测任意四边形的文本实例。但是对于不规则文本的检测,这类方法处理起来会比较复杂,而且对于文本尺度的变化会比较敏感。自底向上的方法可以分成两类,一是基于像素分类的方法(即仅依靠分割)二是基于文本片段级别检测的方法。后者通常先得到文本组件,然后通过像素聚合或者"连接"等后处理方式将文本组件组合成最后的文本实例,这使得该方法可以更好地解决不规则场景文本检测的问题 ,且这类方法对于文本尺度变换没那么敏感,但后处理会比较复杂,如何对文本组件进行正确的组合一直是这类方法研究的重点问题;而且对于密集型的文本,很容易发生黏连的现象。目前尽管文本检测取得了很大的进步,但如何使得网络对有着复杂几何表征的文本检测更加鲁棒,以及提高文本检测的效率等一直是这一领域的研究方向。
-
自然场景文本识别可分为基于分割的识别算法以及无需分割的识别算法。基于分割的方法通常先定位图像中每个字符的位置,再通过单字识别得到最后的识别结果。但是该类方法受限于单字分割的性能而且缺乏语义信息的协助 。而无需分割的方法则是直接利用包含文本的整图预测出最后的识别结果,该方法主要是依赖于时序连接序列(CTC)或者注意力机制(Atention)。这类方法利用全局语义特征,提高模型的性能,但也存在一些局限。比如基于CTC的识别算法受重复字符影响较大以及很难应用于二维预测(如不规则文本识别);而基于Atten-ton 的算法需要文本特征和字符的对齐,这会带来额外的存储消耗,而且对齐出错还会导致后续文本无法准确识别,因此对于长文本的识别性能较差。所以如何提高场景文本识别的通用性和泛化性一直是值得探索的方向。自然场景文本识别依赖大量数据,所以如何进行有效的数据合成以及如何利用大量的未标注真实数据也是未来的研究热点。
-
对于端到端的场景文本检测与识别,当前的方法可以分为单阶段和两阶段的方法。两阶段的方法借助了 Faster R-CNN 和 Mask R-CNN 等框架,通过RoI Pooling/Aligm等特征对齐操作将共享特征送人后续的回归网络的同时也送入识别器,或者依赖于单字符实例分割得到识别结果。单阶段的方法则是在直接检测出文本后通过一些特征转换的操作送人识别器。尽管两种方法都在现有公开数据集上有着不错的表现,但仍有以下几点挑战:
- 一是检测识别之间特征如何更有效地连接:
- 二是目前端到端模型大都速度较慢,如何提高效率也是一个大的问题;
- 三是检测和识别分支在训练时的收敛速度是不对等的这导致了端到端系统在训练时会不稳定或者会有冗余的计算,如何平衡这两个任务之间训练时的差异性也是一个值得研究的课题。